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
baseUrl
no seutsconfig.json
. O Vite não considera otsconfig.json
por padrão, então você pode precisar instalar ovite-tsconfig-paths
manualmente, 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=forks
Falhas 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 failed
Abort trap: 6
internal 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