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

Posted

技术标签:

【中文标题】在 TeamCity 上为 Karma 配置代码覆盖率报告【英文标题】:Configuring code coverage report for Karma on TeamCity 【发布时间】:2013-10-16 11:52:28 【问题描述】:

我们正在设置 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 中的报告?

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

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

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

【问题讨论】:

【参考方案1】:

让 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)

【讨论】:

我正在运行 TeamCity Professional 10.0.4(内部版本 42538)并且 TeamCity 未自动检测到 coverage.zip 文件。根据@ekimpl,我必须使用 Start Page = coverage.zip!index.html 在项目设置中手动创建一个新的构建报告选项卡 谢谢你的回答,这就是我要找的。​​span> 【参考方案2】:

不知道顺序是否重要,您是否应该在预处理器条目中使用 [] 括号?

尝试以下方法:

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

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

【讨论】:

既然文件是生成的,应该不是这个问题。【参考方案3】:

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

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

【讨论】:

以上是关于在 TeamCity 上为 Karma 配置代码覆盖率报告的主要内容,如果未能解决你的问题,请参考以下文章

无法加载“teamcity”,它没有注册!也许您缺少一些插件?

如何在 java 中获取 Teamcity 配置的值?

Teamcity 构建链问题

“ng test”不能同时做覆盖率报告和TeamCity报告

TeamCity NuGet Feed:配置Feed网址

Karma 代码覆盖率未在 Sonarqube 中显示