Как проверить один файл с помощью 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 ответов:
если
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", ... }, }