Angular 9:Karma覆盖率:如何只显示特定文件的覆盖率报告



背景

我们已经有了一个巨大的角度应用程序,没有任何单元测试,我们刚刚开始编写测试用例。当我运行命令时

ng test --code-coverage

问题

我看到了报告中所有的*.ts文件。然而,我只需要在我的应用程序中创建.spec文件的3个文件的代码覆盖率,而不是全部。

我尝试了什么

在阅读了不同的stackerflow帖子后,似乎有一些选项filespreprocessor要添加到tsconfig.json中,我可以这样添加我的文件:

"files": [
"src/app/products/details/activity/timeline.component.ts",
],
"preprocessors": {
"src/app/products/details/activity/timeline.component.ts": ["coverage"],
},

问题

但这似乎不起作用,我仍然可以在报道中看到所有文件。我如何告诉Angular/Karma/Istanbul只显示我为其编写测试用例的文件的覆盖范围。

这个答案可能会帮助您:如何从因果报应代码覆盖率报告中排除文件?。

基本上,您可以使用!排除preprocessor中的文件夹。

preprocessors: {
// source files, that you wanna generate coverage for
// do not include tests or libraries
'src/**/!(spec|mock)/*.js': ['coverage']
},

排除覆盖文件的另一种方法是使用跳过动词跳过实际测试,例如在jasmine:xdescribe xit:jasmine或mochadescribe.skip

或者只执行你想知道覆盖范围的唯一测试:

describe.only  -> mocha
fdescribe  -> jasmine

只需在文件中使用以下动词即可测试组件:"src/app/products/details/activity/timeline.component.ts"

最新更新