Интерфейс командной строки
Команды
vitest
Запускает Vitest в текущей директории. Автоматически активирует режим наблюдения в среде разработки и режим выполнения в CI.
Вы можете передать дополнительный аргумент в качестве фильтра для запускаемых тестовых файлов. Например:
vitest foobar
Запустит только те тестовые файлы, пути которых содержат foobar
. Этот фильтр проверяет только наличие подстроки и не поддерживает регулярные выражения или glob-шаблоны, если ваш терминал не обрабатывает их перед тем, как Vitest получит фильтр.
vitest run
Выполняет однократный запуск тестов без режима наблюдения.
vitest watch
Запускает все наборы тестов и отслеживает изменения, перезапуская тесты при их обнаружении. Эквивалентно вызову vitest
без аргументов. В CI автоматически переключается на vitest run
.
vitest dev
Альтернативное название для vitest watch
.
vitest related
Запускает только те тесты, которые покрывают указанные исходные файлы. Работает со статическими импортами (например, import('./index.ts')
или import index from './index.ts')
), но не с динамическими (например, import(filepath)
). Все файлы должны быть указаны относительно корневой папки проекта.
Полезно при использовании с lint-staged
или в вашей системе CI.
vitest related /src/index.ts /src/hello-world.js
TIP
Учтите, что Vitest по умолчанию запускается в режиме наблюдения. Если вы используете такие инструменты, как lint-staged
, вам также следует передать опцию --run
, чтобы команда могла нормально завершиться.
// .lintstagedrc.js
export default {
'*.{js,ts}': 'vitest related --run',
};
vitest bench
Запускает только [тесты производительности (benchmark)], сравнивающие результаты.
Опции
Опции | |
---|---|
-v, --version | Выводит номер версии Vitest |
-r, --root <path> | Указывает корневую директорию проекта |
-c, --config <path> | Указывает путь к файлу конфигурации |
-u, --update | Обновляет снепшоты (snapshots) |
-w, --watch | Включает режим наблюдения с мгновенным откликом на изменения |
-t, --testNamePattern <pattern> | Запускает тесты, полные имена которых соответствуют указанному шаблону |
--dir <path> | Базовый каталог для поиска тестовых файлов |
--ui | Включает пользовательский интерфейс (UI) |
--open | Автоматически открывает UI, если он включен (по умолчанию: true ) |
--api [api] | Включает API для взаимодействия с Vitest. Доступные опции: --api.port <port> , --api.host [host] и --api.strictPort |
--threads | Включает многопоточность (по умолчанию: true ) |
--single-thread | Запускает тесты в одном потоке. Требует явного указания --threads (по умолчанию: false ) |
--experimental-vm-threads | Запускает тесты в пуле рабочих процессов с использованием изоляции VM (по умолчанию: false ) |
--experimental-vm-worker-memory-limit | Устанавливает максимальный объем памяти, разрешенный для рабочего процесса. При достижении этого лимита будет создан новый рабочий процесс |
--silent | Отключает вывод в консоль из тестов |
--isolate | Обеспечивает изоляцию среды для каждого тестового файла (по умолчанию: true ) |
--reporter <name> | Выбирает репортер: default , verbose , dot , junit , json или путь к пользовательскому репортеру |
--outputFile <filename/-s> | Записывает результаты тестов в файл, если также указана опция --reporter=json или --reporter=junit . С помощью точечной нотации cac вы можете указать отдельные выходные файлы для нескольких репортеров |
--coverage | Включает сбор информации о покрытии кода |
--run | Отключает режим наблюдения |
--mode | Переопределяет режим Vite (по умолчанию: test ) |
--mode <name> | Переопределяет режим Vite (по умолчанию: test ) |
--globals | Внедряет API Vitest в глобальную область видимости |
--dom | Эмулирует API браузера с помощью happy-dom |
--browser [options] | Запускает тесты в браузере (по умолчанию: false ) |
--environment <env> | Указывает среду выполнения тестов (по умолчанию: node ) |
--passWithNoTests | Завершается успешно, даже если тесты не найдены |
--logHeapUsage | Показывает размер кучи для каждого теста |
--allowOnly | Разрешает выполнение тестов и наборов, помеченных как only (по умолчанию: false в CI, true в противном случае) |
--dangerouslyIgnoreUnhandledErrors | Игнорирует все необработанные ошибки, возникающие во время выполнения тестов |
--changed [since] | Запускает тесты, связанные с измененными файлами (по умолчанию: false ). См. документацию |
--shard <shard> | Выполняет тесты в указанном шарде (shard) |
--sequence | Определяет порядок запуска тестов. Используйте [точечную нотацию cac], чтобы указать параметры (например, используйте --sequence.shuffle , чтобы запускать тесты в случайном порядке, или --sequence.shuffle --sequence.seed SEED_ID , чтобы запускать в определенном порядке) |
--no-color | Удаляет цвета из вывода консоли |
--inspect | Включает инспектор Node.js |
--inspect-brk | Включает инспектор Node.js с остановкой при запуске |
--bail <number> | Останавливает выполнение тестов, когда заданное количество тестов завершилось с ошибкой |
--retry <times> | Повторяет тест указанное количество раз, если он завершился с ошибкой |
-h, --help | Отображает доступные параметры командной строки |
TIP
Vitest поддерживает как camelCase, так и kebab-case для аргументов командной строки. Например, --passWithNoTests
и --pass-with-no-tests
будут работать одинаково (--no-color
и --inspect-brk
являются исключениями).
Vitest также поддерживает различные способы указания значения: --reporter dot
и --reporter=dot
оба допустимы.
Если опция поддерживает массив значений, вам нужно передать опцию несколько раз:
vitest --reporter=dot --reporter=default
Логические опции можно отрицать с помощью префикса no-
. Указание значения как false
также работает:
vitest --no-api
vitest --api=false
changed
Тип:
boolean | string
По умолчанию:
false
Запускает тесты только для измененных файлов. Если значение не указано, будут запущены тесты для незафиксированных изменений (включая подготовленные и неподготовленные).
Чтобы запустить тесты для изменений, внесенных в последнем коммите, вы можете использовать
--changed HEAD~1
. Вы также можете передать хэш коммита или имя ветки.В сочетании с параметром конфигурации
forceRerunTriggers
будет запущен весь набор тестов, если будет найдено совпадение.
shard
Тип:
string
По умолчанию: отключено
Разделяет набор тестов на части (шарды) для параллельного выполнения. Формат:
<index>/<count>
, где:count
- это положительное целое число, общее количество шардовindex
- это положительное целое число, индекс текущего шарда (начиная с 1)
Эта команда разделит все тесты на
count
равных частей и выполнит только те, которые принадлежат шарду с индексомindex
. Например, чтобы разделить набор тестов на три части, используйте следующее:shvitest run --shard=1/3 vitest run --shard=2/3 vitest run --shard=3/3
WARNING
Эта опция несовместима с включенным режимом --watch
(который включен по умолчанию в режиме разработки).