Полная команда для запуска одного теста Jest
Команда:
node <path-to-jest> -i <you-test-file> -c <jest-config> -t "<test-block-name>"
<path-to-jest>
:
- Окна:
node_modules\jest\bin\jest.js
- Другие:
node_modules/.bin/jest
-i <you-test-file>
: путь к файлу с тестами ( js
или ts
)
-c <jest-config>
: путь к отдельному файлу конфигурации Jest (JSON), если вы сохраняете свою конфигурацию Jest, package.json
вам не нужно указывать этот параметр (Jest найдет его без вашей помощи)
-t <the-name-of-test-block>
: На самом деле это имя (первый параметр) из describe(...)
, it(...)
или test(...)
блока.
Пример:
describe("math tests", () => {
it("1 + 1 = 2", () => {
expect(1 + 1).toBe(2);
});
it("-1 * -1 !== -1", () => {
expect(-1 * -1).not.toBe(-1);
});
});
Итак, команда
node node_modules/jest/bin/jest.js -i test/math-tests.js -c test/tests-config.json -t "1 + 1 = 2"
будет проверять it("1 + 1 = 2", ...)
, но если вы измените -t
параметр на, "math tests"
то он будет запускать оба теста из describe("math tests",...)
блока.
Примечания:
- Для Windows заменить
node_modules/.bin/jest
на node_modules\jest\bin\jest.js
.
- Такой подход позволяет отлаживать запущенный скрипт. Для включения отладки добавьте
'--inspect-brk'
параметр в команду.
Выполнение одиночного Jest-теста с помощью сценариев NPM в package.json
Установив Jest, вы можете упростить синтаксис этой команды (см. Выше) с помощью сценариев NPM . В "package.json"
добавляем новый скрипт в "scripts"
раздел:
"scripts": {
"test:math": "jest -i test/my-tests.js -t \"math tests\"",
}
В этом случае мы используем псевдоним 'jest'
вместо записи полного пути к нему. Кроме того, мы не указываем путь к файлу конфигурации, так как мы можем поместить его в файл, "package.json"
и Jest рассмотрит его по умолчанию. Теперь вы можете запустить команду:
npm run test:math
и "math tests"
блок с двумя тестами будет выполнен. Или, конечно, вы можете указать один конкретный тест по имени.
Другой вариант - извлечь <the-name-of-test-block>
параметр из "test:math"
сценария и передать его из команды NPM:
package.json:
"scripts": {
"test:math": "jest -i test/my-tests.js -t",
}
Команда:
npm run test:math "math tests"
Теперь вы можете управлять именем запускаемых тестов с помощью более короткой команды.
Примечания:
- Команда
'jest'
будет работать со сценариями NPM, потому что
npm делает "./node_modules/.bin"
первую запись в PATH
переменной среды при запуске любых сценариев жизненного цикла, так что это будет работать нормально, даже если ваша программа не установлена глобально ( блог NPM )
- Этот подход, кажется, не позволяет отладку, потому что Jest запускается через его двоичный файл / CLI , а не через
node
.
Запуск выбранного Jest-теста в коде Visual Studio
Если вы используете код Visual Studio, вы можете воспользоваться им и запустить текущий выбранный тест (в редакторе кода), нажав F5
кнопку. Для этого нам потребуется создать новый файл конфигурации запуска в ".vscode/launch.json"
файле. В этой конфигурации мы будем использовать предопределенные переменные, которые заменяются соответствующими (к сожалению, не всегда ) значениями при запуске. Из всех доступных нам интересны только эти:
${relativeFile}
- текущий открытый файл относительно
${workspaceFolder}
${selectedText}
- текущий выделенный текст в активном файле
Но перед записью конфигурации запуска мы должны добавить 'test'
скрипт в наш 'package.json'
(если у нас его еще нет).
package.json:
"scripts": {
"test": "jest"
}
тогда мы можем использовать его в нашей конфигурации запуска.
Конфигурация запуска:
{
"type": "node",
"request": "launch",
"name": "Run selected Jest test",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script",
"test"
],
"args": [
"--",
"-i",
"${relativeFile}",
"-t",
"${selectedText}"
],
"console": "integratedTerminal",
}
он фактически делает то же самое, что и команды, описанные ранее в этом ответе. Теперь, когда все готово, мы можем запустить любой тест без необходимости переписывать параметры команды вручную.
Вот все, что вам нужно сделать:
- Выберите созданную конфигурацию запуска на панели отладки:
- Откройте файл с тестами в редакторе кода и выберите название теста, который вы хотите проверить (без кавычек):
- Нажмите
'F5'
кнопку.
И вуаля!
Теперь для запуска любого теста просто откройте его в редакторе, выберите его имя и нажмите F5.
К сожалению, это не будет "вуаля" на машинах с Windows, потому что они заменяют (кто знает почему) ${relativeFile}
переменную путем обратного слеша, и Jest не поймет такой путь.
Примечания:
- Для запуска под отладчиком не забудьте добавить
'--inspect-brk'
параметр.
- В этом примере конфигурации у нас нет параметра конфигурации Jest, при условии, что он включен в
'package.json'
.