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,
});parseCLI
Вы можете использовать этот метод для разбора аргументов CLI. Он принимает строку (где аргументы разделены одним пробелом) или массив строк аргументов CLI в том же формате, который использует Vitest CLI. Он возвращает фильтр и options, которые вы можете позже передать методам createVitest или startVitest.
import { parseCLI } from 'vitest/node';
parseCLI('vitest ./files.ts --coverage --browser=chrome');Vitest
При создании экземпляра Vitest необходимо указать текущий режим тестирования. Возможные значения:
test– для запуска runtime тестов.benchmark– для запуска тестов производительности.
mode
test
В режиме test выполняются только функции test или it. При обнаружении bench возникает ошибка. В этом режиме для поиска файлов тестов используются параметры include и exclude в конфигурации.
benchmark
В режиме benchmark выполняются функции bench. При обнаружении test или it возникает ошибка. Этот режим использует параметры benchmark.include и benchmark.exclude в конфигурации для поиска файлов тестов производительности.
start
Вы можете запустить тесты или тесты производительности с помощью метода start. Можно передать массив строк для фильтрации файлов тестов.