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


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

Я:

  • выполнить npm install jest-cli --save-dev
  • Обновлено package.json:' {... "скрипты": {"тест":" шутка"}... }
  • написано несколько тестов.

под управлением 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'

спасибо

6 133

6 ответов:

если npm test работает, это означает, что jest установлен глобально. Для того, чтобы запустить определенный тест, вам нужно будет использовать - npm test не будет работать.

таким образом, вы можете запустить шутку непосредственно с jest bar.spec.js

Примечание: вам не нужно вводить полный путь вашего теста: аргумент становится регулярным выражением, поэтому он должен быть только частью полного пути.

Примечание 2.0: Если вы использовали npm install -g jest чтобы установить jest глобально, измените его как npm install -g jest-cli

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

npm test -- SomeTestFileToRun

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

npm test -- --help

во всяком случае, скандируя

npm test -- Foo

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

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

  • шутка появляется для лечения спецификаций в качестве префикса.

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

  • выполнить FooBar.js,Foo.js и FooZilla.js
  • но не бежать foo.js

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

вот что сработало для меня, на корневом уровне проекта:

node_modules/.bin/jest [args]

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

для выполнения индивидуального теста:

ValidationUtil его мой модуль ValidationUtil.спекуляция.js

npm test -t ValidationUtil

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

если вы используете yarn вы можете добавить .spec.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",
    ...
  },

}

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