Erros Comuns
Não foi possível encontrar o módulo './caminho-relativo'
Se você receber um erro indicando que o módulo não foi encontrado, isso pode significar várias coisas:
- Você digitou o caminho incorretamente. Verifique se o caminho está correto e se a capitalização está correta.
- É possível que você esteja utilizando
baseUrl
no seu arquivotsconfig.json
. O Vite não considera otsconfig.json
por padrão, então você precisará instalarvite-tsconfig-paths
caso dependa dessa funcionalidade.
- É possível que você esteja utilizando
import { defineConfig } from 'vitest/config';
import tsconfigPaths from 'vite-tsconfig-paths';
export default defineConfig({
plugins: [tsconfigPaths()],
});
Ou modifique 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 definidos incorretamente. O Vite os interpreta como relativos ao arquivo de importação, e não à raiz do projeto.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
alias: {
'@/': './src/',
'@/': new URL('./src/', import.meta.url).pathname,
},
},
});
Não é possível mockar "./mocked-file.js" porque ele já foi carregado
Este erro ocorre quando o método vi.mock
é chamado em um módulo que já foi carregado. O Vitest lança este erro porque esta chamada não tem efeito, já que módulos em cache são preferidos.
Lembre-se que vi.mock
sempre é içado (hoisted) - isso significa que o módulo foi carregado antes que o arquivo de teste começasse a ser executado - provavelmente em um arquivo de configuração (setup). Para corrigir o erro, remova a importação ou limpe o cache no final de um arquivo de configuração - esteja ciente de que o arquivo de configuração e seu arquivo de teste farão referência a módulos diferentes nesse caso.
// setupFile.js
import { vi } from 'vitest';
import { sideEffect } from './mocked-file.js';
sideEffect();
vi.resetModules();
Falha ao terminar o worker
Este erro pode acontecer quando o fetch
do NodeJS é usado com o padrão pool: 'threads'
. Este problema está sendo rastreado na issue Timeout abort can leave process(es) running in the background #3077.
Como alternativa, você pode mudar para pool: 'forks'
ou pool: 'vmForks'
.
Especifique pool
no seu arquivo de configuração:
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
pool: 'forks',
},
});
Ou nos scripts do seu package.json
:
scripts: {
- "test": "vitest"
+ "test": "vitest --pool=forks"
}