Подтвердить что ты не робот

Как проверить один файл с помощью Jest?

Я могу проверить несколько файлов с помощью Jest, но я не могу понять, как протестировать один файл.

У меня есть:

  • Выполнить npm install jest-cli --save-dev
  • Обновлено package.json: `{... "scripts": { "test": "jest" }...}
  • Написано несколько тестов.

Запуск npm test работает как ожидалось (в настоящее время он запускает 14 тестов).

Как проверить один файл, например. test app/foo/__tests__/bar.spec.js?

Я попытался запустить npm test app/foo/__tests__/bar.spec.js (из корня проекта), но я получаю следующую ошибку:

npm ERR! Error: ENOENT, open '<path to project>/node_modules/app/foo/__tests__/bar.spec.js/package.json'

Спасибо

4b9b3361

Ответ 1

Для запуска конкретного теста вам нужно будет использовать команду jest. npm test не будет работать. Чтобы получить доступ к jest непосредственно в командной строке, установите его через npm я -g jest-cli или npm я -g jest-cli yarn global add jest-cli.

Затем просто запустите свой конкретный тест с помощью jest bar.spec.js

Примечание. Вам не нужно вводить полный путь к тестовому файлу. Аргумент интерпретируется как регулярное выражение. Достаточно любой части полного пути, которая однозначно идентифицирует файл.

Ответ 2

Все, что вам нужно сделать, это повторять заклинание магии:

npm test -- SomeTestFileToRun

Автономный -- - это * nix magic для обозначения конца опций, что означает (для NPM), что все, что после этого передается выполняемой команде, в данном случае jest. Кроме того, вы можете отобразить примечания по использованию шутки, сказав

npm test -- --help

Во всяком случае, пение

npm test -- Foo

запускает тесты в именованном файле (FooBar.js). Вы должны отметить, что:

  • Jest рассматривает имя как регистрозависимое, поэтому, если вы используете регистронезависимую, но сохраняющую регистр файловую систему (например, Windows NTFS), вы можете столкнуться с тем, что кажется странным.

  • Похоже, Jest рассматривает спецификацию как префикс.

Таким образом, вышеприведенное заклинание будет

  • Запустите FooBar.js, Foo.js и FooZilla.js
  • Но НЕ беги foo.js

Ответ 3

Чтобы выполнить индивидуальный тест:

ValidationUtil свой модуль ValidationUtil.spec.js

npm test -t ValidationUtil

-t → после размещения регулярного выражения, содержащего тестовое имя

Ответ 4

Использование npm test не означает, что jest устанавливается глобально. Это просто означает, что "тест" сопоставляется с использованием jest в вашем пакете. Json

Следующее - это то, что сработало для меня на корневом уровне проекта:

node_modules/.bin/jest [args]

args может быть тестовым файлом, который вы хотите запустить, или каталогом, содержащим несколько файлов.

Ответ 5

если вы используете yarn, вы можете добавить файл .spec.js или .test.js непосредственно после:

yarn test src/lib/myfile.test.js

Это часть моего package.json с установкой jest в качестве локального пакета (удалены соответствующие части):

{
...
  "scripts": {
    "test": "jest",
    "testw": "jest --watch",
    "testc": "jest --coverage",
...
  },
  "devDependencies": {
    "jest": "^18.1.0",
    ...
  },

}

Ответ 6

Если вы используете npm >= 5.2.0 и вы установили jest локально как devDependencies с помощью npm я -d jest вы можете запустить jest для определенного файла, выполнив npx jest/path/to/your/spec.js

Ответ 7

Вот как я динамически запускаю тесты для конкретного файла без перезапуска теста. Мой реактивный проект был создан был create-react-app

поэтому он следит за изменениями, автоматически запускает тест, когда я делаю изменения.

Так вот что я вижу в конце результатов теста на терминале.

Test Suites: 16 passed, 16 total
Tests:       98 passed, 98 total
Snapshots:   0 total
Time:        5.048s
Ran all test suites.

Watch Usage: Press w to show more.

Нажмите W

Watch Usage
 › Press f to run only failed tests.
 › Press o to only run tests related to changed files.
 › Press q to quit watch mode.
 › Press p to filter by a filename regex pattern.
 › Press t to filter by a test name regex pattern.
 › Press Enter to trigger a test run.

затем нажмите P

Pattern Mode Usage
 › Press Esc to exit pattern mode.
 › Press Enter to filter by a filenames regex pattern.

 pattern ›

 Start typing to filter by a filename regex pattern.

это после того, как я хотел запустить файл index.es6.js в папке "Логин"

Pattern Mode Usage
 › Press Esc to exit pattern mode.
 › Press Enter to filter by a filenames regex pattern.

 pattern › login/index

 Pattern matches 1 file
 › src/containers/Login/index.es6.test.js

Вот как я запускаю тесты для конкретного файла.

Ответ 8

Я просто установил jest как глобально, а затем запустил jest myFileToTest.spec.js и это сработало

Ответ 9

У вас есть два варианта:

  • Вариант 1: Командная строка. Вы можете запустить следующую команду
node '/Users/complete-path-to-you-project/your-project/node_modules/.bin/jest' '/Users/complete-path-to-you-project/your-project/path-to-your-file-within-the-project/your-file.spec.ts'

Это позволяет избежать установки Jest по всему миру. Вы используете шутку, используемую вашим проектом.

  • Вариант 2: Если вы используете VS Code, у вас есть отличный плагин для этого: Jest Runner. Это позволяет вам не только запускать тесты файл за файлом, но даже конкретные комплекты и спецификации, просто щелкнув правой кнопкой мыши на тестах, которые вы хотите запустить.

Ответ 10

Jest будет использовать то, что вы передаете в качестве шаблона регулярных выражений. Это будет соответствовать.

Если вы хотите запустить определенный тестовый файл. Тогда лучший способ сделать это - указать полный путь к нему. (Вы можете слишком точно указать определенный относительный путь, например (src/XFolder/index.spec.ts)).

Самый простой способ указать полный путь в каталоге и в linux:

jest $PWD/index.spec.ts

Обратите внимание на использование переменной $ PWD.

enter image description here

Для окон! (быть обновленным)