Параметры командной строки Jest CLI
У исполняемого файла jest командной строки есть ряд полезных параметров. Вы можете запустить jest --help для просмотра всех доступных параметров. Многие из показанных ниже параметров также могут использоваться вместе для запуска тестов точно так, как вам нужно. Каждый параметр конфигурации Jest также может быть указан через командную строку.
Вот краткий обзор:
Запуск из командной строки
Запуск всех тестов (по умолчанию):
jest
Запуск только тестов, которые были указаны с шаблоном или именем файла:
jest my-test #or jest path/to/my-test.js
Запуск тестов, связанных с измененными файлами на основе hg/git (несохраненные изменения):
jest -o
Запуск тестов, связанных с path/to/fileA.js и path/to/fileB.js:
jest --findRelatedTests path/to/fileA.js path/to/fileB.js
Запуск тестов, соответствующих этому имени спецификации (сопоставление с именем в describe или test, по сути).
jest -t name-of-spec
Запуск режима наблюдения:
jest --watch #runs jest -o by default jest --watchAll #runs all tests
Режим наблюдения также позволяет указать имя или путь к файлу, чтобы сконцентрироваться на определенном наборе тестов.
Использование с yarn
Если вы запускаете Jest через yarn test, вы можете передать аргументы командной строки непосредственно как аргументы Jest.
Вместо:
jest -u -t="ColorPicker"
вы можете использовать:
yarn test -u -t="ColorPicker"
Использование с npm scripts
Если вы запускаете Jest через npm test, вы по-прежнему можете использовать аргументы командной строки, вставив -- между npm test и аргументами Jest.
Вместо:
jest -u -t="ColorPicker"
вы можете использовать:
npm test -- -u -t="ColorPicker"
Поддержка параметров camelCase и с дефисами
Jest поддерживает как camelCase, так и параметры с дефисами. Следующие примеры дадут одинаковый результат:
jest --collect-coverage jest --collectCoverage
Аргументы также могут быть смешанными:
jest --update-snapshot --detectOpenHandles
Параметры
Параметры командной строки имеют приоритет над значениями из Конфигурации.
- Использование с npm scripts
- Поддержка параметров camelCase и с дефисами
- Параметры
-
Справочник
jest <regexForTestFiles>--bail[=<n>]--cache--changedFilesWithAncestor--changedSince--ci--clearCache--clearMocks--collectCoverageFrom=<glob>--colors--config=<path>--coverage[=<boolean>]--coverageProvider=<provider>--debug--detectOpenHandles--env=<environment>--errorOnDeprecated--expand--filter=<file>--findRelatedTests <spaceSeparatedListOfSourceFiles>--forceExit--help--ignoreProjects <project1> ... <projectN>--init--injectGlobals--json--lastCommit--listTests--logHeapUsage--maxConcurrency=<num>--maxWorkers=<num>|<string>--noStackTrace--notify--onlyChanged--outputFile=<filename>--passWithNoTests--projects <path1> ... <pathN>--reporters--resetMocks--restoreMocks--roots--runInBand--runTestsByPath--selectProjects <project1> ... <projectN>--setupFilesAfterEnv <path1> ... <pathN>--shard--showConfig--silent--testEnvironmentOptions=<json string>--testLocationInResults--testMatch glob1 ... globN--testNamePattern=<regex>--testPathIgnorePatterns=<regex>|[array]--testPathPattern=<regex>--testRunner=<path>--testSequencer=<path>--testTimeout=<number>--updateSnapshot--useStderr--verbose--version--watch--watchAll--watchman
Справочник
jest <regexForTestFiles>
Когда вы запускаете jest с аргументом, этот аргумент обрабатывается как регулярное выражение для сопоставления с файлами в вашем проекте. Можно запустить наборы тестов, предоставив шаблон. Будут выбраны и выполнены только те файлы, которые соответствуют шаблону. В зависимости от вашего терминала, вам может потребоваться заключить этот аргумент в кавычки: jest "my.*(complex)?pattern". В Windows вам нужно использовать / в качестве разделителя пути или экранировать \ как \\.
--bail[=<n>]
Псевдоним: -b. Выход из набора тестов сразу после n числа неудавшихся тестов. По умолчанию 1.
--cache
Использовать кэш. По умолчанию true. Отключить кэш с помощью --no-cache.
Кэш следует отключать только в случае проблем, связанных с кэшированием. В среднем отключение кэша делает Jest как минимум в два раза медленнее.
Если вы хотите проверить кэш, используйте --showConfig и посмотрите значение cacheDirectory. Если вам нужно очистить кэш, используйте --clearCache.
--changedFilesWithAncestor
Запускает тесты, связанные с текущими изменениями и изменениями в последнем коммите. Ведёт себя аналогично --onlyChanged.
--changedSince
Запускает тесты, связанные с изменениями с момента указанной ветки или хэша коммита. Если текущая ветка разошлась с заданной веткой, то будут протестированы только изменения, внесенные локально. Ведёт себя аналогично --onlyChanged.
--ci
Когда этот параметр указан, Jest предполагает, что он выполняется в среде CI. Это изменяет поведение при появлении нового снимка. Вместо обычного поведения автоматической сохранения нового снимка он завершает тест неудачно и требует запуска Jest с --updateSnapshot.
--clearCache
Удаляет директорию кэша Jest и затем выходит, не запуская тесты. Удалит cacheDirectory если параметр передан, или по умолчанию директорию кэша Jest. Директория кэша по умолчанию может быть получена вызовом jest --showConfig.
Очистка кэша снизит производительность.
--clearMocks
Автоматически очищает вызовы, экземпляры, контексты и результаты подделок перед каждым тестом. Эквивалентно вызову jest.clearAllMocks() перед каждым тестом. Это не удаляет какие-либо реализованные подделки, которые могли быть предоставлены.
--collectCoverageFrom=<glob>
Шаблон glob, относительный к rootDir соответствия файлам, из которых необходимо собирать информацию о покрытии.
--colors
Принудительно отображает результаты тестов с выделением, даже если вывод не является терминалом TTY.
--config=<path>
Псевдоним: -c. Путь к файлу конфигурации Jest, указывающий, как находить и выполнять тесты. Если в конфигурации не задан rootDir, предполагается, что директория, содержащая файл конфигурации, является rootDir для проекта. Это также может быть значение в формате JSON, которое Jest будет использовать в качестве конфигурации.
--coverage[=<boolean>]
Псевдоним: --collectCoverage. Указывает, что информация о покрытии тестов должна собираться и отображаться в выводе. Дополнительно передайте <boolean> для переопределения параметра, заданного в конфигурации.
--coverageProvider=<provider>
Указывает, какой поставщик должен использоваться для инструментирования кода для покрытия. Допустимые значения — babel (по умолчанию) или v8.
Обратите внимание, что использование v8 считается экспериментальным. Это использует встроенное покрытие кода V8, а не базирующееся на Babel. Оно не так хорошо протестировано, а также улучшилось в последних нескольких выпусках Node.js. Использование последних версий Node.js (v14 на момент написания этой статьи) даст лучшие результаты.
--debug
Печать отладочной информации о вашей конфигурации Jest.
END_OF_DOCUMENT_MARKER--detectOpenHandles
Попытка собрать и вывести открытые дескрипторы, препятствуя чистому завершению Jest. Используйте это в случаях, когда вам нужно использовать --forceExit для того, чтобы Jest завершился, чтобы потенциально отследить причину. Это подразумевает --runInBand, что тесты выполняются последовательно. Реализовано с помощью async_hooks. Этот параметр имеет существенную нагрузку на производительность и должен использоваться только для отладки.
--env=<environment>
Среда тестирования, используемая для всех тестов. Она может указывать на любой файл или модуль Node.js. Примеры: jsdom, node или path/to/my-environment.js.
--errorOnDeprecated
Вызывать устаревшие API с полезными сообщениями об ошибках. Полезно для облегчения процесса обновления.
--expand
Псевдоним: -e. Используйте этот флаг, чтобы отобразить полные различия и ошибки вместо патча.
--filter=<file>
Путь к модулю, экспортирующему функцию фильтрации. Эта асинхронная функция получает список путей к тестам, которые можно изменить, чтобы исключить выполнение тестов, вернув объект с свойством «filtered». Особенно полезно при совместном использовании с инфраструктурой тестирования для фильтрации известных неисправных, например.
module.exports = testPaths => {
const allowedPaths = testPaths.filter(filteringFunction); // ["path1.spec.js", "path2.spec.js", etc]
return {
filtered: allowedPaths,
};
};
--findRelatedTests <spaceSeparatedListOfSourceFiles>
Найти и запустить тесты, покрывающие список исходных файлов, разделенных пробелами, которые были переданы в качестве аргументов. Полезно для интеграции с pre-commit hook для запуска минимального количества необходимых тестов. Может использоваться вместе с --coverage для включения тестового покрытия для исходных файлов, нет необходимости в дублировании аргументов --collectCoverageFrom.
--forceExit
Принудительно завершить Jest после завершения всех тестов. Это полезно, когда ресурсы, настроенные кодом теста, не могут быть должным образом очищены.
Эта функция является аварийным выходом. Если Jest не завершается в конце выполнения теста, это означает, что внешние ресурсы все еще удерживаются или таймеры все еще ожидают в вашем коде. Рекомендуется разворачивать внешние ресурсы после каждого теста, чтобы убедиться, что Jest может завершиться нормально. Вы можете использовать --detectOpenHandles для отслеживания причины.
--help
Показать справочную информацию, аналогичную этой странице.
--ignoreProjects <project1> ... <projectN>
Игнорировать тесты указанных проектов. Jest использует атрибут displayName в конфигурации для идентификации каждого проекта. Если вы используете этот параметр, вам необходимо предоставить displayName для всех ваших проектов.
--init
Создать файл конфигурации базовой структуры. В зависимости от вашего проекта Jest задаст несколько вопросов, которые помогут сгенерировать файл jest.config.js с кратким описанием каждого параметра.
--injectGlobals
Вставить глобальные переменные Jest (expect, test, describe, beforeEach и т.д.) в глобальную среду. Если вы установили это в false, вы должны импортировать из @jest/globals, например.
import {expect, jest, test} from '@jest/globals';
jest.useFakeTimers();
test('some test', () => {
expect(Date.now()).toBe(0);
});
Этот параметр поддерживается только с помощью стандартного jest-circus тест-раннера.
--json
Выводит результаты тестов в формате JSON. В этом режиме весь остальной вывод тестов и сообщения пользователей будут отправлены в stderr.
--lastCommit
Запустить все тесты, затронутые изменениями файла в последнем коммите. Ведет себя аналогично --onlyChanged.
--listTests
Выводит список всех файлов тестов, которые Jest запустит с учетом аргументов, и завершается.
--logHeapUsage
Выводит использование кучи после каждого теста. Полезно для отладки утечек памяти. Используйте вместе с --runInBand и --expose-gc в Node.js.
--maxConcurrency=<num>
Запрещает Jest от выполнения более указанного количества тестов одновременно. Затрагивает только тесты, которые используют test.concurrent.
--maxWorkers=<num>|<string>
Псевдоним: -w. Указывает максимальное количество рабочих процессов, которое пул рабочих процессов запустит для выполнения тестов. В режиме single run по умолчанию это количество ядер на вашем компьютере минус одно для основного потока. В режиме watch по умолчанию это половина доступных ядер на вашем компьютере, чтобы гарантировать, что Jest не мешает работе и не замедляет ваш компьютер. Может быть полезно настроить это в ресурсоограниченных средах, таких как CI, но значения по умолчанию должны быть достаточны для большинства случаев использования.
Для сред с переменным количеством доступных ЦП вы можете использовать процентную конфигурацию: --maxWorkers=50%.
--noStackTrace
Отключает вывод трассировки стека в результатах тестов.
--notify
Активирует уведомления о результатах тестов. Хорошо подходит для тех случаев, когда вы не хотите, чтобы ваше сознание могло сосредоточиться на чем-либо, кроме тестирования JavaScript.
--onlyChanged
Псевдоним: -o. Попытка определить, какие тесты нужно запустить, основываясь на файлах, измененных в текущем репозитории. Работает только если вы запускаете тесты в git/hg репозитории в данный момент и требует статической зависимости (т.е. без динамических require).
--outputFile=<filename>
Записывает результаты тестов в файл, когда также указан параметр --json. Возвращаемая структура JSON документирована в testResultsProcessor.
--passWithNoTests
Разрешает прохождение набора тестов, когда файлы не найдены.
--projects <path1> ... <pathN>
Запустить тесты из одного или нескольких проектов, найденных в указанных путях; также принимает шаблоны путей. Этот параметр является эквивалентом параметра командной строки для параметра конфигурации projects. Обратите внимание, что если файлы конфигурации найдены в указанных путях, все проекты, указанные в этих файлах конфигурации, будут запущены.
--reporters
Запустить тесты с указанными репортерами. Опции репортеров недоступны через командную строку. Пример с несколькими репортерами:
jest --reporters="default" --reporters="jest-junit"
--resetMocks
Автоматически сбрасывает состояние моков перед каждым тестом. Эквивалентно вызову jest.resetAllMocks() перед каждым тестом. Это приведет к удалению всех моков их поддельных реализаций, но не восстановит их исходную реализацию.
--restoreMocks
Автоматически восстанавливает состояние и реализацию моков перед каждым тестом. Эквивалентно вызову jest.restoreAllMocks() перед каждым тестом. Это приведет к удалению всех моков их поддельных реализаций и восстановит их исходную реализацию.
--roots
Список путей к каталогам, которые Jest должен использовать для поиска файлов.
--runInBand
Псевдоним: -i. Выполняет все тесты последовательно в текущем процессе, а не создавая пул рабочих процессов дочерних процессов, которые выполняют тесты. Это может быть полезно для отладки.
--runTestsByPath
Запускает только те тесты, которые были указаны с их точными путями.
По умолчанию сопоставление по регулярному выражению работает хорошо при небольших запусках, но становится медленным, если ему предоставляется несколько шаблонов и/или много тестов. Этот параметр заменяет логику сопоставления по регулярным выражениям и тем самым оптимизирует время, необходимое Jest для фильтрации определенных тестовых файлов.
--selectProjects <project1> ... <projectN>
Запустить тесты указанных проектов. Jest использует атрибут displayName в конфигурации для идентификации каждого проекта. Если вы используете этот параметр, вам необходимо предоставить displayName для всех ваших проектов.
--setupFilesAfterEnv <path1> ... <pathN>
Список путей к модулям, которые выполняют некоторый код для настройки или подготовки тестовой среды перед каждым тестом. Обратите внимание, что файлы, импортированные скриптами настройки, не будут имитироваться во время тестирования.
--shard
Номер фрагмента набора тестов для выполнения в формате (?<shardIndex>\d+)/(?<shardCount>\d+).
shardIndex описывает, какой фрагмент выбрать, а shardCount управляет количеством фрагментов, на которые следует разделить набор.
shardIndex и shardCount должны быть положительными числами от 1, а shardIndex должно быть меньше или равно shardCount.
Если указан shard, настроенный testSequencer должен реализовывать метод shard.
Например, чтобы разделить набор на три фрагмента, каждый из которых выполняет третью часть тестов:
jest --shard=1/3 jest --shard=2/3 jest --shard=3/3
--showConfig
Выводит вашу конфигурацию Jest и затем завершается.
--silent
Препятствует печати сообщений тестов через консоль.
--testEnvironmentOptions=<json string>
JSON-строка с параметрами, которые будут переданы testEnvironment. Соответствующие параметры зависят от среды.
--testLocationInResults
Добавляет поле location к результатам тестов. Полезно, если нужно сообщить о местоположении теста в отчётчике.
Обратите внимание, что column имеет нумерацию с 0, а line — нет.
{
"column": 4,
"line": 5
}
--testMatch glob1 ... globN
Шаблоны glob, которые Jest использует для обнаружения файлов тестов. Подробности см. в testMatch конфигурации.
--testNamePattern=<regex>
Псевдоним: -t. Запускать только тесты с именем, соответствующим регулярному выражению. Например, если нужно запустить только тесты, связанные с авторизацией, которые будут иметь имена вроде «GET /api/posts with auth», можно использовать jest -t=auth.
Регулярное выражение применяется к полному имени, которое представляет собой сочетание имени теста и всех окружающих блоков describe.
--testPathIgnorePatterns=<regex>|[array]
Одна или массив строк регулярных выражений, которые проверяются на соответствие всем путям тестов перед выполнением теста. В отличие от --testPathPattern, он запустит только те тесты, путь к которым не соответствует предоставленным выражениям регулярных выражений.
Для передачи в виде массива используйте экранированные скобки и пробелы, разделяющие регулярные выражения, например, \(/node_modules/ /tests/e2e/\). Или можно опустить скобки, объединив регулярные выражения в одно регулярное выражение, например, /node_modules/|/tests/e2e/. Эти два примера эквивалентны.
--testPathPattern=<regex>
Строка регулярного выражения, которая применяется для проверки соответствия всем путям тестов перед выполнением теста. В Windows необходимо использовать / в качестве разделителя путей или экранировать \ как \\.
--testRunner=<path>
Позволяет указать пользовательский запускатель тестов.
--testSequencer=<path>
Позволяет указать пользовательский последователь тестов. Подробности см. в testSequencer конфигурации.
--testTimeout=<number>
Время ожидания теста по умолчанию в миллисекундах. Значение по умолчанию: 5000.
--updateSnapshot
Псевдоним: -u. Используйте этот флаг для повторной записи каждого снимка, который завершился неудачей во время этого запуска теста. Может использоваться вместе с шаблоном набора тестов или с --testNamePattern для повторной записи снимков.
--useStderr
Перенаправить весь вывод в stderr.
--verbose
Отображать индивидуальные результаты тестов с иерархией набора тестов.
--version
Псевдоним: -v. Вывести версию и завершить работу.
--watch
Наблюдать за изменениями файлов и повторно запускать тесты, связанные с изменёнными файлами. Если нужно повторно запускать все тесты при изменении файла, используйте вместо этого параметр --watchAll.
--watchAll
Наблюдать за изменениями файлов и повторно запускать все тесты при изменениях. Если нужно повторно запускать только те тесты, которые зависят от изменённых файлов, используйте параметр --watch.
Используйте --watchAll=false для явного отключения режима наблюдения. Обратите внимание, что во многих средах CI это делается автоматически.
--watchman
Использовать watchman для поиска файлов. По умолчанию true. Отключить используя --no-watchman.
© 2022 Facebook, Inc.
Licensed under the MIT License.
https://jestjs.io/docs/cli