升级到 Angular 13 后,使用 --code-coverage 的测试失败

Sud*_*han 21 karma-jasmine karma-coverage angular-cli

升级到 Angular 13 后,使用--code-coverage运行的测试失败,并出现缺少某些插件的错误

\n

我正在使用karma-coverage-istanbul-reporterkarma.conf.js这导致了一些问题。我什至将其替换为默认值karma-coverage,但仍然看到相同的错误

\n
ng test waxion --no-watch --code-coverage --browsers ChromeHeadless\n
Run Code Online (Sandbox Code Playgroud)\n
\xe2\xa0\x8b Generating browser application bundles (phase: setup)...20 11 2021 17:34:24.723:ERROR [reporter]: Can not load reporter "coverage", it is not registered!\n  Perhaps you are missing some plugin?\n\xe2\xa0\x99 Generating browser application bundles (phase: building)...20 11 2021 17:34:27.353:INFO [karma-server]: Karma v6.3.9 server started at http://localhost:9876/\n20 11 2021 17:34:27.353:INFO [launcher]: Launching browsers Chrome with concurrency unlimited\n20 11 2021 17:34:27.353:ERROR [karma-server]: Error: Found 1 load error\n    at Server.<anonymous> (/Users/waxion/test-project/node_modules/karma/lib/server.js:239:26)\n    at Object.onceWrapper (events.js:421:28)\n    at Server.emit (events.js:327:22)\n    at Server.EventEmitter.emit (domain.js:486:12)\n    at emitListeningNT (net.js:1352:10)\n    at processTicksAndRejections (internal/process/task_queues.js:79:21)```\n
Run Code Online (Sandbox Code Playgroud)\n

Ale*_*der 57

升级到 Angular 13 后我遇到了同样的问题。与 Karma 报告器相比,添加 Istanbul 报告器解决了我的问题。

因此,只需添加coverage-istanbul您的记者即可。

例如:

 reporters: ['progress', 'kjhtml', 'coverage-istanbul'],
Run Code Online (Sandbox Code Playgroud)