Erros Comuns
Não é possível encontrar o módulo './relative-path'
Se você receber um erro indicando que o módulo não pode ser encontrado, isso pode ter algumas causas:
- Você digitou o caminho incorretamente. Certifique-se de que o caminho está exato.
- É possível que você esteja utilizando
baseUrlno seutsconfig.json. O Vite não considera otsconfig.jsonpor padrão, então você pode precisar instalar ovite-tsconfig-pathsmanualmente, caso dependa desse comportamento.
- É possível que você esteja utilizando
import { defineConfig } from 'vitest/config';
import tsconfigPaths from 'vite-tsconfig-paths';
export default defineConfig({
plugins: [tsconfigPaths()],
});Ou, reescreva seu caminho para que não seja relativo à raiz do projeto:
- import helpers from 'src/helpers'
+ import helpers from '../src/helpers'- Certifique-se de que não há aliases relativos. O Vite os trata como relativos ao arquivo onde a importação está sendo feita, em vez de serem relativos à raiz do projeto.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
alias: {
'@/': './src/',
'@/': new URL('./src/', import.meta.url).pathname,
},
},
});Falha ao finalizar o worker
Este erro pode ocorrer quando o fetch do NodeJS é utilizado com o pool: 'threads' padrão. Este problema está sendo acompanhado na issue Timeout abort can leave process(es) running in the background #3077.
Como alternativa, você pode mudar para pool: 'forks' ou pool: 'vmForks'.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
pool: 'forks',
},
});vitest --pool=forksFalhas de segmentação e erros de código nativo
A execução de módulos nativos do NodeJS em pool: 'threads' pode resultar em erros crípticos originados do código nativo.
Segmentation fault (core dumped)thread '<unnamed>' panicked at 'assertion failedAbort trap: 6internal error: entered unreachable code
Nesses casos, o módulo nativo provavelmente não foi construído para ser thread-safe. Como alternativa, você pode mudar para pool: 'forks', que executa os casos de teste em múltiplos node:child_process em vez de múltiplos node:worker_threads.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
pool: 'forks',
},
});vitest --pool=forks