在TeamCity上为Karma配置代码覆盖率报告

时间:2013-10-09 08:24:12

标签: javascript node.js reporting teamcity karma-runner

我们正在设置TeamCity以使用节点和业力来运行我们的茉莉花测试。

测试运行正常,并在TeamCity的“测试”选项卡下报告结果。

但是我们想在TeamCity中报告代码覆盖率(甚至在该级别设置构建失败条件)。

我已经安装了karma-coverage模块

npm install karma-coverage --save-dev

尝试通过添加

karma.conf.js中配置它
preprocessors: {
 'myProject/Scripts/app/**/*.js': 'coverage'
},

reporters: ['progress', 'coverage'],

当运行karma时,不会报告错误,并且会在文件夹coverage下创建大量文件,包括index.html

中格式良好的代码覆盖率报告

但TeamCity中没有任何新内容。没有“代码覆盖率”选项卡。

如何配置karma以生成显示在TeamCity中的报告?

也许我可以使用set coverageReporter来适当的东西,但是什么? 此设置没有区别:

coverageReporter: {
    type : 'html',
    dir : 'coverage/'
},

奖金问题:如何在业力报告的代码覆盖率上设置构建失败条件?

3 个答案:

答案 0 :(得分:23)

让TeamCity识别您的覆盖率报告的最简单方法是输出包含该html覆盖率报告的构建工件。

编辑构建的配置设置,并在Artifact Paths下添加如下内容:

coverage/** => coverage.zip

如果在根目录中找到index.html文件,TeamCity将识别coverage.zip工件,并为每个构建添加代码覆盖率选项卡。

来源:https://confluence.jetbrains.com/pages/viewpage.action?pageId=74847395#HowTo...-ImportcoverageresultsinTeamCity(Teamcity版本9.x)

答案 1 :(得分:5)

在我的情况下,报告已成功生成到coverage.zip,但代码覆盖率标签在构建报告中不可见。

我必须在“项目设置”中手动添加报告标签,并提供index.html文件的完整路径

enter image description here

答案 2 :(得分:1)

不知道,如果序列很重要,你不应该在预处理器条目中使用[]括号吗?

尝试以下方法:

reporters: ['progress', 'coverage'],

preprocessors: {
 'myProject/Scripts/app/**/*.js': ['coverage']
},