Улучшение производительности
По умолчанию Vitest запускает каждый тестовый файл в изолированной среде, используя пул:
- Пул
threadsзапускает каждый тестовый файл в отдельномWorker(рабочем потоке). - Пул
forksзапускает каждый тестовый файл в отдельном порожденном дочернем процессе (forked child process). - Пул
vmThreadsзапускает каждый тестовый файл в отдельном VM context (VM контексте), но использует workers (рабочие потоки) для параллелизма.
Это может значительно увеличить время выполнения тестов, что нежелательно для проектов, не имеющих побочных эффектов и корректно очищающих состояние (что обычно справедливо для проектов с окружением node). В этом случае отключение изоляции повысит скорость ваших тестов. Чтобы это сделать, укажите флаг --no-isolate в CLI или установите свойство test.isolate в false в конфигурации. Если вы используете несколько пулов одновременно с опцией poolMatchGlobs, вы также можете отключить изоляцию для конкретного используемого пула.
vitest --no-isolateimport { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
isolate: false,
// Вы также можете отключить изоляцию только для определенных пулов
poolOptions: {
forks: {
isolate: false,
},
},
},
});TIP
Если вы используете пул vmThreads, отключение изоляции невозможно. Для повышения производительности тестов используйте пул threads.
Для некоторых проектов также может быть полезно отключить параллелизм файлов для сокращения времени инициализации. Чтобы это сделать, передайте флаг --no-file-parallelism в CLI или установите свойство test.fileParallelism в false в конфигурации.
vitest --no-file-parallelismimport { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
fileParallelism: false,
},
});