20

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

测试运行良好,结果报告在 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 中的报告?

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

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

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

4

3 回答 3

27

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

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

coverage/** => coverage.zip

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

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

于 2013-10-29T08:48:33.383 回答
8

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

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

在此处输入图像描述

于 2016-09-26T19:28:35.063 回答
1

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

尝试以下操作:

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

preprocessors: {
 'myProject/Scripts/app/**/*.js': ['coverage']
},
于 2013-11-26T15:46:47.237 回答