Давайте начнем!
По умолчанию Angular использует jasmine и karma для модульного тестирования. Здесь мы попытались интегрировать jest с проектом angular для легкого модульного тестирования.
1. Управление зависимостями
- Во-первых, удалите все devDependencies, связанные с кармой. Вы можете использовать приведенную ниже команду для удаления этих devDependencies.
npm uninstall karma karma-chrome-launcher karma-coverage karma-jasmine karma-jasmine-html-reporter
- Затем установите связанные с шуткой devDependencies, как показано ниже.
npm install jest @types/jest jest-junit jest-preset-angular ts-jest — save-dev
2. Удалите и обновите jsons
- Удалить тестовый объект из angular.json
- Обновите раздел сценариев в package.json, как показано ниже.
3. Удалите и обновите файлы конфигурации
- Удалить karma.conf.js с корневого уровня проекта
- Создайте и обновите jest.config.js на корневом уровне проекта.
- Удалите test.ts из каталога src
- Создайте и обновите файл setupJest.ts в каталоге src.
4. Удалите и обновите tsconfig jsons
- Обновите tsconfig.json, как показано ниже.
- Обновите tsconfig.spec.json, как показано ниже.
4. Запустите и проверьте модульное тестирование
- Запустите приведенный ниже скрипт в терминале, чтобы проверить
запустить тест npm
- Запустите приведенный ниже скрипт, чтобы проверить ваши изменения в режиме просмотра.
Тест запуска npm: смотреть
- Запустите приведенный ниже скрипт, чтобы увидеть охват отдельного компонента, а также всего приложения.
Тест запуска npm: покрытие
Примечание. На корневом уровне проекта будет создан каталог покрытия, и если мы откроем index.html в браузере, мы увидим покрытие кода всего приложения. (Путь: jest-ng-seed/coverage/jest-ng-seed/lcov-report/index.html)
Найдите приведенную ниже ссылку GitHub для приведенных выше фрагментов кода и начального проекта под названием jest-ng-seed.
Краткое содержание
Мы подробно изучили интеграцию jest с Angular 12 с одним исходным проектом под названием jest-ng-seed.
Удачного кодирования!!