Node API
WARNING
Vitest предоставляет экспериментальный внутренний API. Обратная совместимость не гарантируется и изменения могут не соответствовать семантическому версионированию (semver). Пожалуйста, зафиксируйте версию Vitest при его использовании.
startVitest
Вы можете запустить тесты Vitest, используя его Node API:
import { startVitest } from 'vitest/node';
const vitest = await startVitest('test');
await vitest?.close();
Функция startVitest
возвращает экземпляр Vitest
, если тесты могут быть успешно запущены. Она возвращает undefined
в следующих случаях:
- Vitest не обнаружил пакет "vite" (обычно устанавливается вместе с Vitest).
- Включено покрытие кода и режим запуска "test", но пакет для покрытия не установлен (
@vitest/coverage-v8
или@vitest/coverage-istanbul
). - Не установлен пакет окружения (
jsdom
/happy-dom
/@edge-runtime/vm
).
Если возвращается undefined
или во время выполнения тесты завершились с ошибками, Vitest устанавливает process.exitCode
в 1
.
Если режим наблюдения не включен, Vitest вызывает метод close
.
Если режим наблюдения включен и терминал поддерживает TTY, Vitest регистрирует горячие клавиши.
Вторым аргументом можно передать список фильтров. Vitest запустит только те тесты, пути к файлам которых содержат хотя бы одну из переданных строк.
Кроме того, третьим аргументом можно передать аргументы командной строки (CLI), которые переопределят параметры конфигурации тестов.
В качестве альтернативы, четвертым аргументом можно передать полную конфигурацию Vite, которая будет иметь приоритет над другими пользовательскими параметрами.
createVitest
Вы можете создать экземпляр Vitest самостоятельно, используя функцию createVitest
. Она возвращает тот же экземпляр Vitest
, что и startVitest
, но не запускает тесты и не выполняет проверку установленных пакетов.
import { createVitest } from 'vitest/node';
const vitest = await createVitest('test', {
watch: false,
});
Vitest
При создании экземпляра Vitest необходимо указать текущий режим тестирования. Возможные значения:
test
– для запуска runtime тестов.benchmark
– для запуска тестов производительности.typecheck
– для запуска тестов типов.
mode
test
В режиме test
выполняются только функции test
или it
. При обнаружении bench
возникает ошибка. В этом режиме для поиска файлов тестов используются параметры include
и exclude
в конфигурации.
benchmark
В режиме benchmark
выполняются функции bench
. При обнаружении test
или it
возникает ошибка. Этот режим использует параметры benchmark.include
и benchmark.exclude
в конфигурации для поиска файлов тестов производительности.
typecheck
Режим typecheck
не выполняет тесты. Он анализирует типы и генерирует отчет. Этот режим использует параметры typecheck.include
и typecheck.exclude
в конфигурации для поиска файлов для анализа типов.
start
Вы можете запустить тесты или тесты производительности с помощью метода start
. Можно передать массив строк для фильтрации файлов тестов.