Я могу протестировать несколько файлов с помощью Jest, но я не могу понять, как проверить один файл.
Я имею:
- Запустить
npm install jest-cli --save-dev
- Обновлено
package.json
: `{..." scripts ": {" test ":" jest "} ...} - Написан ряд тестов.
Запуск npm test
работает, как и ожидалось (в настоящее время выполняется 14 тестов).
Как проверить один файл, например, проверить 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'
Спасибо
jest bar.spec.js
даетjest: command not found
. Я подтвердил, что Jest установлен (npm list -g jest
показываетjest@0.1.37
). FWIW, когда я бегу, используяnpm test
его используетjest-cli
.jest-cli
это правильный модуль, установите его глобальноnpm install -g jest-cli
.jest
в нпм есть ... что-то ещеnode_modules/.bin/jest args
fit
вместоit
.Все, что вам нужно сделать, это повторять заклинание магии:
Автономным
--
является * nix magic для обозначения конца опций, что означает (для NPM), что в этом случае все после этого передается выполняемой командеjest
. Кроме того, вы можете отобразить заметки об использовании шутки, сказавВо всяком случае, пение
запускает тесты в названном файле (
FooBar.js
). Вы должны отметить, однако, что:Jest рассматривает имя как регистрозависимое, поэтому, если вы используете регистронезависимую, но сохраняющую регистр файловую систему (например, Windows NTFS), вы можете столкнуться с тем, что кажется странным.
Похоже, Jest рассматривает спецификацию как префикс.
Так что вышеприведенное заклинание
FooBar.js
,Foo.js
иFooZilla.js
foo.js
источник
npm ERR! Error: ENOENT, open '<path to project>/node_modules/<name of file>/package.json'
npm test ToDoForm.test.js
работал, аjest ToDoForm.test.js
неЧтобы запустить индивидуальный тест:
-t
- после этого поставить регулярное выражение, содержащее название теста.источник
Использование
npm test
не означает, что шутка устанавливается во всем мире. Это просто означает, что «test» сопоставлен с использованием jest в вашем package.jsonВот что сработало у меня на корневом уровне проекта:
Аргументы могут быть тестовым файлом, который вы хотите запустить, или каталогом, содержащим несколько файлов.
источник
node_modules/.bin
том, чтобы использоватьnpx
команду. Напримерnpx jest [args]
если вы используете,
yarn
вы можете добавить.spec.js
или.test.js
файл сразу после:Это часть моей
package.json
установки с помощью jest в качестве локального пакета (удалены соответствующие части):источник
Вы можете использовать имя файла с
npm test --
:источник
Если вы работаете,
npm >= 5.2.0
и вы установили jest локально, какdevDependencies
с,npm i -d jest
вы можете запустить jest для определенного файла, выполнивnpx jest /path/to/your/spec.js
источник
Мы используем nrwl-nx с угловым . В этом случае мы можем использовать эту команду:
ноты:
npm test
запустит тестовый скрипт, указанный вpackage.json
:"test:client": "ng test client"
<ng-project>
это название проекта вangular.json
"defaultProject"
(указанный вangular.json
) (поэтому вы должны указать его, когда тест не входит в ваш проект по умолчанию)angular.json
навигации к"project"
-"<ng-project>"
-"architect"
-"test"
"builder"
, что в нашем случае:"@nrwl/jest:jest"
npm test server -- --help
чтобы увидеть все доступные опции--testFile
который используется здесьисточник
Вот как я динамически запускаю тесты для конкретного файла без перезапуска теста. Мой реактивный проект был создан был
create-react-app
поэтому он следит за изменениями, автоматически запускает тест, когда я делаю изменения.
Так вот что я вижу в конце результатов теста на терминале.
Нажмите W
затем нажмите P
это после того, как я хотел запустить файл index.es6.js в папке «Логин»
Вот как я запускаю тесты для конкретного файла.
источник
Также может быть достигнуто путем
$ jest --findRelatedTests path/to/fileA.js
ref ( https://jestjs.io/docs/en/cli#running-from-the-command-line )
Как этого добиться в Nx monorepo, вот ответ
user@host:/path/to/workspace$ npx nx test api --findRelatedTests=apps/api/src/app/mytest.spec.ts
ref & больше информации ( https://github.com/satminav/nx-qa/issues/6 )
источник
Я просто установил Jest как глобально, а затем побежал,
jest myFileToTest.spec.js
и это сработалоисточник
У вас есть два варианта:
Это позволяет избежать установки Jest по всему миру. Вы используете шутку, используемую вашим проектом.
источник
Jest будет использовать то, что вы передаете в качестве шаблона регулярных выражений . Это будет соответствовать для.
Если вы хотите запустить определенный тестовый файл. Тогда лучший способ сделать это - указать полный путь к нему. (Вы можете слишком точно указать определенный относительный путь, например (src / XFolder / index.spec.ts)).
Самый простой способ указать полный путь в каталоге и в Linux:
Обратите внимание на использование переменной $ PWD .
Для окон! (быть обновленным)
источник
С помощью Angular и Jest вы можете добавить это в package.json в разделе "scripts"
Затем для запуска модульного теста для конкретного файла вы можете написать эту команду в своем терминале
источник
Не нужно проходить полный путь. Просто используйте
regex
pattern
.https://jestjs.io/docs/en/cli.html#--testnamepatternregex
источник