Poprawa wydajności
Domyślnie Vitest uruchamia każdy plik testowy w izolowanym środowisku, korzystając z puli:
- Pula
threads
uruchamia każdy plik testowy w oddzielnymWorkerze
(wątku roboczym) -Worker
. - Pula
forks
uruchamia każdy plik testowy w oddzielnym procesie potomnym (fork) - procesie potomnym utworzonym za pomocą funkcji fork. - Pula
vmThreads
uruchamia każdy plik testowy w oddzielnym kontekście VM, wykorzystując wątki robocze do przetwarzania równoległego.
Takie podejście może wydłużać czas wykonywania testów, co jest niepożądane w projektach, które nie polegają na efektach ubocznych i prawidłowo zarządzają stanem (co zazwyczaj dotyczy projektów działających w środowisku node
). W takim przypadku wyłączenie izolacji może przyspieszyć testy. Aby to zrobić, dodaj flagę --no-isolate
do wiersza poleceń (CLI) lub ustaw właściwość test.isolate
na false
w pliku konfiguracyjnym. Jeśli używasz wielu pul z opcją poolMatchGlobs
, możesz również wyłączyć izolację dla konkretnej puli.
vitest --no-isolate
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
isolate: false,
// Możesz również wyłączyć izolację tylko dla wybranych pul
poolOptions: {
forks: {
isolate: false,
},
},
},
});
TIP
Jeśli używasz puli vmThreads
, wyłączenie izolacji nie jest możliwe. Zamiast tego użyj puli threads
, aby poprawić wydajność testów.
W niektórych projektach pożądane może być również wyłączenie paralelizmu plików, aby skrócić czas uruchamiania. Aby to zrobić, dodaj flagę --no-file-parallelism
do CLI lub ustaw właściwość test.fileParallelism
na false
w pliku konfiguracyjnym.
vitest --no-file-parallelism
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
fileParallelism: false,
},
});