Я настроил свое приложение Angular 6 для запуска тестов с помощью Jest при запуске «npm run test». Это прекрасно работает. Я хотел бы иметь возможность запускать те же тесты при выполнении «ng test». Можно ли настроить Angular CLI для этого?
Могу ли я запустить Jest через Angular CLI?
comment
Я думаю, вы ищете этот github.com/meltedspark/angular-builders /дерево/мастер/пакеты/
- person Skorunka František   schedule 18.09.2018
Ответы (1)
Я настоятельно рекомендую использовать построитель Jest, если вы хотите переключиться в Jest в вашем проекте Angular CLI. У нас только что была миграция с Karma на Jest в одном из наших проектов, это сработало как по маслу. Для справки, вот минимальные шаги для переключения на Jest в новом проекте:
Создать проект
$ ng new myapp $ cd myapp
Удалите зависимости Karma, файл конфигурации и
test.ts
:$ yarn remove karma karma-chrome-launcher karma-coverage-istanbul-reporter karma-jasmine karma-jasmine-html-reporter $ rm src/karma.conf.js src/test.ts
Установите Jest Builder, создайте файл конфигурации:
$ yarn add --dev jest @angular-builders/jest $ touch src/jest.config.js
Переключитесь на
commonjs
вsrc/tsconfig.spec.json
:{ "extends": "../tsconfig.json", "compilerOptions": { "outDir": "../out-tsc/spec", "module": "commonjs", "types": [ "jasmine", "node" ] }, "include": [ "**/*.spec.ts", "**/*.d.ts" ] }
Переключитесь на конструктор Jest в
angular.json
:{ ... "test": { "builder": "@angular-builders/jest:run", "options": { "styles": [ "src/styles.css" ], "scripts": [], "assets": [ "src/favicon.ico", "src/assets" ] } }, ... }
Теперь вы будете запускать тесты с помощью Jest:
$ ng test
PASS src/app/app.component.spec.ts
AppComponent
✓ should create the app (223ms)
✓ should have as title 'myapp' (80ms)
✓ should render title in a h1 tag (70ms)
Test Suites: 1 passed, 1 total
Tests: 3 passed, 3 total
Snapshots: 0 total
Time: 3.704s
Ran all test suites.
person
hoefling
schedule
10.01.2019
только небольшая поправка. Используйте правильные типы в
tsconfig.spec.json
. В массиве "types"
вместо "jasmine","node"
должно быть только jest
.
- person Aditya Vikas Devarapalli; 10.06.2020