Интерфейс командной строки
Команды
vitest
Запускает Vitest в текущей директории. Автоматически активирует режим наблюдения в среде разработки и режим выполнения в CI.
Вы можете передать дополнительный аргумент в качестве фильтра для запускаемых тестовых файлов. Например:
vitest foobar
Запустит только те тестовые файлы, пути которых содержат foobar
. Этот фильтр проверяет только наличие подстроки и не поддерживает регулярные выражения или glob-шаблоны, если ваш терминал не обрабатывает их перед тем, как Vitest получит фильтр.
vitest run
Выполняет однократный запуск тестов без режима наблюдения.
vitest watch
Запускает все наборы тестов и отслеживает изменения, перезапуская тесты при их обнаружении. Эквивалентно вызову vitest
без аргументов. В CI автоматически переключается на vitest run
.
vitest dev
Альтернативное название для vitest watch
.
vitest related
Запускает только те тесты, которые покрывают указанные исходные файлы. Работает со статическими импортами (например, import('./index.js')
или import index from './index.js')
), но не с динамическими (например, 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)], сравнивающие результаты.
Опции
Параметр | |
---|---|
-r, --root <путь> | Корневой путь |
-c, --config <путь> | Путь к файлу конфигурации |
-u, --update | Обновить снимок |
-w, --watch | Включить режим наблюдения |
-t, --testNamePattern <шаблон> | Запускать тесты с полными именами, соответствующими указанному шаблону регулярного выражения |
--dir <путь> | Базовый каталог для поиска тестовых файлов |
--ui | Включить UI |
--open | Автоматически открыть UI (по умолчанию: !process.env.CI ) |
--api.port [порт] | Укажите порт сервера. Обратите внимание, что если порт уже используется, Vite автоматически попытается использовать следующий доступный порт, поэтому это может быть не фактический порт, который прослушивает сервер. Если установлено значение true, будет установлено значение 51204 |
--api.host [хост] | Укажите, какие IP-адреса должен прослушивать сервер. Установите значение 0.0.0.0 или true , чтобы прослушивать все адреса, включая LAN и общедоступные адреса |
--api.strictPort | Установите значение true, чтобы выйти, если порт уже используется, вместо автоматической попытки использовать следующий доступный порт |
--silent | Отключить вывод в консоль от тестов |
--hideSkippedTests | Скрыть логи для пропущенных тестов |
--reporter <имя> | Укажите репортеры |
--outputFile <имя_файла/-s> | Записать результаты тестов в файл, если также указан поддерживаемый репортер, используйте нотацию точек cac для отдельных выходных данных нескольких репортеров (пример: --outputFile.tap=./tap.txt) |
--coverage.all | Следует ли включать все файлы, в том числе не охваченные тестами, в отчет |
--coverage.provider <имя> | Выберите инструмент для сбора данных о покрытии, доступны значения: "v8", "istanbul" и "custom" |
--coverage.enabled | Включает сбор данных о покрытии. Может быть переопределен с помощью опции CLI --coverage (по умолчанию: false ) |
--coverage.include <шаблон> | Файлы, включенные в покрытие, в виде шаблонов glob. Может быть указано несколько раз при использовании нескольких шаблонов (по умолчанию: ** ) |
--coverage.exclude <шаблон> | Файлы, которые нужно исключить из покрытия. Может быть указано несколько раз при использовании нескольких расширений (по умолчанию: см. coverage.exclude ) |
--coverage.extension <расширение> | Расширение, которое нужно включить в покрытие. Может быть указано несколько раз при использовании нескольких расширений (по умолчанию: [".js", ".cjs", ".mjs", ".ts", ".mts", ".cts", ".tsx", ".jsx", ".vue", ".svelte"] ) |
--coverage.clean | Очистить результаты покрытия перед запуском тестов (по умолчанию: true) |
--coverage.cleanOnRerun | Очистить отчет о покрытии при повторном запуске в режиме наблюдения (по умолчанию: true) |
--coverage.reportsDirectory <путь> | Каталог для записи отчета о покрытии (по умолчанию: ./coverage) |
--coverage.reporter <имя> | Репортеры покрытия для использования. См. coverage.reporter для получения дополнительной информации (по умолчанию: ["text", "html", "clover", "json"] ) |
--coverage.reportOnFailure | Создавать отчет о покрытии, даже если тесты не пройдены (по умолчанию: false ) |
--coverage.allowExternal | Собирать покрытие файлов вне корневого каталога проекта (по умолчанию: false ) |
--coverage.skipFull | Не показывать файлы со 100% покрытием операторов, ветвей и функций (по умолчанию: false ) |
--coverage.thresholds.100 | Сокращение для установки всех порогов покрытия на 100 (по умолчанию: false ) |
--coverage.thresholds.perFile | Проверять пороги для каждого файла. См. --coverage.thresholds.lines , --coverage.thresholds.functions , --coverage.thresholds.branches и --coverage.thresholds.statements для фактических пороговых значений (по умолчанию: false ) |
--coverage.thresholds.autoUpdate | Обновить пороговые значения: "lines", "functions", "branches" и "statements" в файле конфигурации, когда текущее покрытие выше настроенных порогов (по умолчанию: false ) |
--coverage.thresholds.lines <число> | Порог для строк. См. istanbuljs для получения дополнительной информации. Этот параметр недоступен для пользовательских провайдеров |
--coverage.thresholds.functions <число> | Порог для функций. См. istanbuljs для получения дополнительной информации. Этот параметр недоступен для пользовательских провайдеров |
--coverage.thresholds.branches <число> | Порог для ветвей. См. istanbuljs для получения дополнительной информации. Этот параметр недоступен для пользовательских провайдеров |
--coverage.thresholds.statements <число> | Порог для операторов. См. istanbuljs для получения дополнительной информации. Этот параметр недоступен для пользовательских провайдеров |
--coverage.ignoreClassMethods <имя> | Массив имен методов классов, которые нужно игнорировать для покрытия. См. istanbuljs для получения дополнительной информации. Этот параметр доступен только для провайдеров istanbul (по умолчанию: [] ) |
--coverage.processingConcurrency <число> | Предел параллелизма, используемый при обработке результатов покрытия. (по умолчанию минимальное значение между 20 и количеством ЦП) |
--coverage.customProviderModule <путь> | Указывает имя модуля или путь для пользовательского модуля провайдера покрытия. См. Custom Coverage Provider для получения дополнительной информации. Этот параметр доступен только для пользовательских провайдеров |
--coverage.watermarks.statements <watermarks> | Верхние и нижние водяные знаки для операторов в формате <high>,<low> |
--coverage.watermarks.lines <watermarks> | Верхние и нижние водяные знаки для строк в формате <high>,<low> |
--coverage.watermarks.branches <watermarks> | Верхние и нижние водяные знаки для ветвей в формате <high>,<low> |
--coverage.watermarks.functions <watermarks> | Верхние и нижние водяные знаки для функций в формате <high>,<low> |
--mode <имя> | Переопределить режим Vite (по умолчанию: test или benchmark ) |
--workspace <путь> | Путь к файлу конфигурации рабочей области |
--isolate | Запускать каждый тестовый файл изолированно. Чтобы отключить изоляцию, используйте --no-isolate (по умолчанию: true ) |
--globals | Внедрить API глобально |
--dom | Имитировать API браузера с помощью happy-dom |
--browser.enabled | Запускать тесты в браузере. Эквивалентно --browser.enabled (по умолчанию: false ) |
--browser.name <имя> | Запускать все тесты в определенном браузере. Некоторые браузеры доступны только для определенных провайдеров (см. --browser.provider ). См. browser.name для получения дополнительной информации |
--browser.headless | Запускать браузер в безголовом режиме (т.е. без открытия графического интерфейса пользователя (GUI)). Если вы запускаете Vitest в CI, он будет включен по умолчанию (по умолчанию: process.env.CI ) |
--browser.api.port [порт] | Укажите порт сервера. Обратите внимание, что если порт уже используется, Vite автоматически попытается использовать следующий доступный порт, поэтому это может быть не фактический порт, который прослушивает сервер. Если установлено значение true, будет установлено значение 63315 |
--browser.api.host [хост] | Укажите, какие IP-адреса должен прослушивать сервер. Установите значение 0.0.0.0 или true , чтобы прослушивать все адреса, включая LAN и общедоступные адреса |
--browser.api.strictPort | Установите значение true, чтобы выйти, если порт уже используется, вместо автоматической попытки использовать следующий доступный порт |
--browser.provider <имя> | Провайдер, используемый для запуска тестов в браузере. Некоторые браузеры доступны только для определенных провайдеров. Может быть "webdriverio", "playwright" или путь к пользовательскому провайдеру. См. browser.provider для получения дополнительной информации (по умолчанию: "webdriverio" ) |
--browser.providerOptions <параметры> | Параметры, которые передаются провайдеру браузера. См. browser.providerOptions для получения дополнительной информации |
--browser.slowHijackESM | Позволить Vitest использовать собственное разрешение модуля в браузере, чтобы включить API, такие как vi.mock и vi.spyOn. См. browser.slowHijackESM для получения дополнительной информации (по умолчанию: false ) |
--browser.isolate | Запускать каждый тестовый файл браузера изолированно. Чтобы отключить изоляцию, используйте --browser.isolate=false (по умолчанию: true ) |
--browser.fileParallelism | Должны ли все тестовые файлы запускаться параллельно. Используйте --browser.file-parallelism=false , чтобы отключить (по умолчанию: то же, что и --file-parallelism ) |
--pool <пул> | Укажите пул, если он не запущен в браузере (по умолчанию: threads ) |
--poolOptions.threads.isolate | Изолировать тесты в пуле потоков (по умолчанию: true ) |
--poolOptions.threads.singleThread | Запускать тесты в одном потоке (по умолчанию: false ) |
--poolOptions.threads.maxThreads <работники> | Максимальное количество потоков для запуска тестов |
--poolOptions.threads.minThreads <работники> | Минимальное количество потоков для запуска тестов |
--poolOptions.threads.useAtomics | Использовать Atomics для синхронизации потоков. Это может улучшить производительность в некоторых случаях, но может вызвать ошибку сегментации в старых версиях Node (по умолчанию: false ) |
--poolOptions.vmThreads.isolate | Изолировать тесты в пуле потоков (по умолчанию: true ) |
--poolOptions.vmThreads.singleThread | Запускать тесты в одном потоке (по умолчанию: false ) |
--poolOptions.vmThreads.maxThreads <работники> | Максимальное количество потоков для запуска тестов |
--poolOptions.vmThreads.minThreads <работники> | Минимальное количество потоков для запуска тестов |
--poolOptions.vmThreads.useAtomics | Использовать Atomics для синхронизации потоков. Это может улучшить производительность в некоторых случаях, но может вызвать ошибку сегментации в старых версиях Node (по умолчанию: false ) |
--poolOptions.vmThreads.memoryLimit <предел> | Ограничение памяти для пула потоков VM. Если вы видите утечки памяти, попробуйте изменить это значение. |
--poolOptions.forks.isolate | Изолировать тесты в пуле форков (по умолчанию: true ) |
--poolOptions.forks.singleFork | Запускать тесты в одном дочернем процессе (по умолчанию: false ) |
--poolOptions.forks.maxForks <работники> | Максимальное количество процессов для запуска тестов |
--poolOptions.forks.minForks <работники> | Минимальное количество процессов для запуска тестов |
--poolOptions.vmForks.isolate | Изолировать тесты в пуле форков (по умолчанию: true ) |
--poolOptions.vmForks.singleFork | Запускать тесты в одном дочернем процессе (по умолчанию: false ) |
--poolOptions.vmForks.maxForks <работники> | Максимальное количество процессов для запуска тестов |
--poolOptions.vmForks.minForks <работники> | Минимальное количество процессов для запуска тестов |
--poolOptions.vmForks.memoryLimit <предел> | Ограничение памяти для пула форков VM. Если вы видите утечки памяти, попробуйте изменить это значение. |
--fileParallelism | Должны ли все тестовые файлы запускаться параллельно. Используйте --no-file-parallelism , чтобы отключить (по умолчанию: true ) |
--maxWorkers <работники> | Максимальное количество рабочих для запуска тестов |
--minWorkers <работники> | Минимальное количество рабочих для запуска тестов |
--environment <имя> | Укажите среду запуска, если она не запущена в браузере (по умолчанию: node ) |
--passWithNoTests | Пройти, если тесты не найдены |
--logHeapUsage | Показывать размер кучи для каждого теста при запуске в node |
--allowOnly | Разрешить тесты и наборы, помеченные как only (по умолчанию: !process.env.CI ) |
--dangerouslyIgnoreUnhandledErrors | Игнорировать любые необработанные ошибки, которые происходят |
--shard <shards> | Сегмент набора тестов для выполнения в формате <index>/<count> |
--changed [since] | Запускать тесты, на которые повлияли измененные файлы (по умолчанию: false ) |
--sequence.shuffle.files | Запускать файлы в случайном порядке. Долго выполняемые тесты не начнутся раньше, если вы включите этот параметр. (по умолчанию: false ) |
--sequence.shuffle.tests | Запускать тесты в случайном порядке (по умолчанию: false ) |
--sequence.concurrent | Запускать тесты параллельно (по умолчанию: false ) |
--sequence.seed <seed> | Установите начальное число для рандомизации. Этот параметр не действует, если --sequence.shuffle имеет ложное значение. См. "Random Seed" page для получения дополнительной информации |
--sequence.hooks <order> | Изменяет порядок выполнения перехватчиков. Допустимые значения: "stack", "list" и "parallel". См. sequence.hooks для получения дополнительной информации (по умолчанию: "parallel" ) |
--sequence.setupFiles <order> | Изменяет порядок выполнения файлов настройки. Допустимые значения: "list" и "parallel". Если установлено значение "list", файлы настройки будут выполняться в том порядке, в котором они определены. Если установлено значение "parallel", файлы настройки будут выполняться параллельно (по умолчанию: "parallel" ) |
--inspect [[host:]port] | Включить инспектор Node.js (по умолчанию: 127.0.0.1:9229 ) |
--inspectBrk [[host:]port] | Включить инспектор Node.js и остановиться перед запуском теста |
--testTimeout <timeout> | Тайм-аут теста по умолчанию в миллисекундах (по умолчанию: 5000 ) |
--hookTimeout <timeout> | Тайм-аут перехватчика по умолчанию в миллисекундах (по умолчанию: 10000 ) |
--bail <число> | Остановить выполнение теста, когда заданное количество тестов не пройдено (по умолчанию: 0 ) |
--retry <times> | Повторить тест указанное количество раз, если он не пройден (по умолчанию: 0 ) |
--diff <путь> | Путь к конфигурации diff, которая будет использоваться для создания интерфейса diff |
--exclude <glob> | Дополнительные шаблоны glob, которые нужно исключить из теста |
--expandSnapshotDiff | Показать полные различия, когда снимок не пройден |
--disableConsoleIntercept | Отключить автоматический перехват ведения журнала консоли (по умолчанию: false ) |
--typecheck.enabled | Включить проверку типов вместе с тестами (по умолчанию: false ) |
--typecheck.only | Запускать только тесты проверки типов. Это автоматически включает проверку типов (по умолчанию: false ) |
--typecheck.checker <имя> | Укажите средство проверки типов для использования. Доступны значения: "tcs" и "vue-tsc" и путь к исполняемому файлу (по умолчанию: "tsc" ) |
--typecheck.allowJs | Разрешить проверку типов файлов JavaScript. По умолчанию берет значение из tsconfig.json |
--typecheck.ignoreSourceErrors | Игнорировать ошибки типов из исходных файлов |
--typecheck.tsconfig <путь> | Путь к пользовательскому файлу tsconfig |
--project <имя> | Имя проекта для запуска, если вы используете функцию Vitest workspace. Это можно повторить для нескольких проектов: --project=1 --project=2 . Вы также можете фильтровать проекты, используя подстановочные знаки, такие как --project=packages* |
--slowTestThreshold <порог> | Порог в миллисекундах, при котором тест считается медленным (по умолчанию: 300 ) |
--teardownTimeout <тайм-аут> | Тайм-аут функции завершения по умолчанию в миллисекундах (по умолчанию: 10000 ) |
--maxConcurrency <число> | Максимальное количество параллельных тестов в наборе (по умолчанию: 5 ) |
--run | Отключить режим наблюдения |
--segfaultRetry <times> | Повторить запуск набора тестов, если он завершается сбоем из-за ошибки сегментации (по умолчанию: true ) |
--no-color | Удаляет цвета из вывода консоли |
--clearScreen | Очистить экран терминала при повторном запуске тестов в режиме наблюдения (по умолчанию: true ) |
--standalone | Запустить Vitest без запуска тестов. Фильтры файлов будут игнорироваться, тесты будут запускаться только при изменении (по умолчанию: false ) |
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
. Вы также можете передать хеш коммита (например,--changed 09a9920
) или имя ветки (например,--changed origin/develop
).При использовании с покрытием кода отчет будет содержать только файлы, связанные с изменениями.
В сочетании с параметром конфигурации
forceRerunTriggers
весь набор тестов будет запущен, если изменится хотя бы один из файлов, указанных в спискеforceRerunTriggers
. По умолчанию изменения в файле конфигурации Vitest и вpackage.json
всегда будут перезапускать весь набор.
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
(который включен по умолчанию в режиме разработки).