Angular CLI - Получить отчет о покрытии, чтобы включить все источники
Я пытаюсь выяснить, как включить все мои источники.ts в сгенерированный отчет о покрытии из углового CLI. В настоящее время я получаю покрытие только для файлов, с которыми связана спецификация, с которой проводятся тесты.
Я попытался добавить includeAllSources
пометить мой файл karma.conf.js, но это не имеет значения.
Какой правильный подход здесь? Я использую Angular CLI 6.1.5
Спасибо
1 ответ
Самым простым решением, которое работало для меня на Angular(v6), было просто добавить app.module.spec.ts
файл, чтобы похвалить ваш app.module.ts
и в этом.spec включают следующий код
import './app.module';
Видимо из-за того, что app.module.ts
является корнем вашего приложения, включая.spec для этого модуля приведет к включению всех ваших файлов во время покрытия кода (ng test --code-coverage
)
Решение, предоставленное Narm, действительно отличное, но все же не идеальное, так как требует импорта вручную, по крайней мере, всех ленивых загруженных модулей + root для тестов, а также в больших проектах почти всегда есть некоторые неиспользованные / забытые компоненты, которые не являются частью любого производственного кода и который останется в исходном коде навсегда непроверенным / неоткрытым.
Решение:
https://github.com/kopach/karma-sabarivka-reporter.
Чтобы использовать его - установите npm install --save-dev karma-sabarivka-reporter
И обновить karma.conf.js
как описано здесь https://github.com/kopach/karma-sabarivka-reporter
После этого - все файлы, соответствующие шаблону, будут включены в окончательный результат покрытия.
Используется то же обходное решение, что и ответ выше в моем проекте Angular 8. Для каждого модуля с отложенной загрузкой я добавил отдельный тестовый файл, аналогичный app.module.spec.ts.