Gyakori hibák
Nem található a modul: './relatív-útvonal'
Ha azt a hibát kapod, hogy a modul nem található, annak több oka is lehet:
- Elgépelted az útvonalat. Ellenőrizd, hogy az útvonal helyes-e.
- Lehetséges, hogy a
tsconfig.json
fájlban abaseUrl
beállítást használod. A Vitest alapértelmezés szerint nem veszi figyelembe atsconfig.json
fájlt. Ha ezt a funkcionalitást szeretnéd használni, telepítened kell avite-tsconfig-paths
csomagot.
- Lehetséges, hogy a
import { defineConfig } from 'vitest/config';
import tsconfigPaths from 'vite-tsconfig-paths';
export default defineConfig({
plugins: [tsconfigPaths()],
});
Vagy módosítsd az útvonalat, hogy ne a gyökérkönyvtárból induljon ki:
- import helpers from 'src/helpers'
+ import helpers from '../src/helpers'
- Ellenőrizd, hogy nincsenek-e relatív aliasok definiálva. A Vitest ezeket az importáló fájlhoz viszonyítja, nem a projekt gyökeréhez.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
alias: {
'@/': './src/',
'@/': new URL('./src/', import.meta.url).pathname,
},
},
});
Nem lehet mockolni a "./mocked-file.js" fájlt, mert már be van töltve
Ez a hiba akkor fordul elő, amikor a vi.mock
metódust egy olyan modulon hívják meg, amely már be van töltve. A Vitest ezt a hibát dobja, mert ennek a hívásnak nincs hatása, mivel a gyorsítótárazott modulok élveznek elsőbbséget.
Ne felejtsd el, hogy a vi.mock
mindig "hoisted" - ez azt jelenti, hogy a modul betöltődött, mielőtt a tesztfájl végrehajtása elkezdődött - valószínűleg egy beállító fájlban. A hiba javításához távolítsd el az importot, vagy töröld a gyorsítótárat egy beállító fájl végén - légy óvatos, mert a beállító fájl és a tesztfájl ebben az esetben különböző modulokra fognak hivatkozni.
// setupFile.js
import { vi } from 'vitest';
import { sideEffect } from './mocked-file.js';
sideEffect();
vi.resetModules();
Nem sikerült leállítani a worker-t
Ez a hiba akkor fordulhat elő, ha a NodeJS fetch
függvénye az alapértelmezett pool: 'threads'
beállítással van használva. Ez a probléma a Timeout abort can leave process(es) running in the background #3077 hiba nyomon követve van.
Megoldásként átválthat a pool: 'forks'
vagy pool: 'vmForks'
beállításra.
Add meg a pool
beállítást a konfigurációs fájlodban:
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
pool: 'forks',
},
});
Vagy a package.json
szkriptjeidben:
scripts: {
- "test": "vitest"
+ "test": "vitest --pool=forks"
}