背景
我们已经有了一个巨大的角度应用程序,没有任何单元测试,我们刚刚开始编写测试用例。当我运行命令时
ng test --code-coverage
问题
我看到了报告中所有的*.ts文件。然而,我只需要在我的应用程序中创建.spec文件的3个文件的代码覆盖率,而不是全部。
我尝试了什么
在阅读了不同的stackerflow帖子后,似乎有一些选项files
和preprocessor
要添加到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"