角度2的代码覆盖率

时间:2017-06-09 17:32:23

标签: angular unit-testing typescript code-coverage

如何找到角度2代码的代码覆盖率?我可以使用vs代码编辑器或webstorm的插件吗?我正在使用Jasmine和Karma对我的代码进行单元测试。

4 个答案:

答案 0 :(得分:20)

如果您想查看整体测试覆盖率统计信息,而不是Angular CLI,您只需键入,然后查看命令提示符窗口的底部

ng test --cc // or --code-coverage

结果:

console view of tests coverage

如果您想查看组件的各个测试覆盖率,请遵循以下步骤。

  1. npm install --save-dev karma-teamcity-reporter

  2. require('karma-teamcity-reporter')添加到karma.conf.js中的插件列表

  3. ng test --code-coverage --reporters=teamcity,coverage-istanbul

  4. 请注意,记者名单以逗号分隔,因为我们增加了一名新的记者,团队城市。

    运行此命令后,您可以在目录中看到文件夹coverage并打开index.html以获取测试覆盖率的图形视图。

    enter image description here

    您还可以在karma.conf.js中设置您想要达到的覆盖率阈值。

    coverageIstanbulReporter: {
          reports: ['html', 'lcovonly'],
          fixWebpackSourcePaths: true,
          thresholds: {
            statements: 90,
            lines: 90,
            branches: 90,
            functions: 90
          }
        },
    

答案 1 :(得分:3)

首先安装依赖项。

npm install karma karma-jasmine karma-chrome-launcher karma-jasmine-html-reporter karma-coverage-istanbul-reporter

然后运行ng test。

ng test --code-coverage

然后运行显示报告的服务器。

http-server -c-1 -o -p 9875 ./coverage

你应该看到这样的事情:

enter image description here

我写了一篇关于这个here的博文。

答案 2 :(得分:1)

我挣扎着这个。我发现的解决方案是

ng test --code-coverage

但请确保在你的karma.conf.js文件中指定了一个记者(我使用'coverage-istanbul')

e.g。 reporters: ['coverage-istanbul']

覆盖率报告将位于根目录中名为“coverage”的目录中。

答案 3 :(得分:0)

ng test --code-coverage 

ng test --code-coverage --reporters=teamcity,coverage-istanbul