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
baseUrlno seu arquivotsconfig.json. O Vite não considera otsconfig.jsonpor padrão, então você precisará instalarvite-tsconfig-pathscaso 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"
}