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.

Другие вопросы по тегам