Typowe błędy
Nie można znaleźć modułu './relative-path'
Jeśli napotkasz błąd informujący o niemożności znalezienia modułu, może to wynikać z kilku przyczyn:
- Podano nieprawidłową ścieżkę. Upewnij się, że ścieżka jest poprawna.
- Używasz
baseUrlw swoimtsconfig.json. Vite domyślnie nie uwzględniatsconfig.json, dlatego jeśli korzystasz z tej funkcji, może być konieczne samodzielne zainstalowanievite-tsconfig-paths.
- Używasz
import { defineConfig } from 'vitest/config';
import tsconfigPaths from 'vite-tsconfig-paths';
export default defineConfig({
plugins: [tsconfigPaths()],
});Alternatywnie, zmień ścieżkę tak, aby nie była względna do katalogu głównego projektu:
- import helpers from 'src/helpers'
+ import helpers from '../src/helpers'- Upewnij się, że nie masz względnych aliasów. Vite traktuje je jako względne do pliku, w którym dokonujesz importu, a nie do katalogu głównego projektu.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
alias: {
'@/': './src/',
'@/': new URL('./src/', import.meta.url).pathname,
},
},
});Niepowodzenie zakończenia workera
Ten błąd może wystąpić, gdy używasz fetch z NodeJS przy domyślnym ustawieniu pool: 'threads'. Problem ten jest monitorowany w zgłoszeniu Timeout abort can leave process(es) running in the background #3077.
Aby obejść ten problem, możesz przełączyć się na pool: 'forks' lub pool: 'vmForks'.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
pool: 'forks',
},
});vitest --pool=forksBłędy segmentacji i błędy kodu natywnego
Uruchamianie natywnych modułów NodeJS w trybie pool: 'threads' może prowadzić do niejasnych błędów generowanych przez kod natywny.
Segmentation fault (core dumped)thread '<unnamed>' panicked at 'assertion failedAbort trap: 6internal error: entered unreachable code
W takich przypadkach moduł natywny prawdopodobnie nie jest zbudowany w sposób bezpieczny dla wielu wątków. Aby obejść ten problem, możesz przełączyć się na pool: 'forks', który wykonuje testy w wielu procesach node:child_process zamiast w wielu node:worker_threads.
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
pool: 'forks',
},
});vitest --pool=forks