在 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”,它没有注册!也许您缺少一些插件?