【发布时间】:2014-01-10 08:45:28
【问题描述】:
我们使用 TeamCity 7(可以升级到 8)进行持续集成,我们为自己设定了 90% 的单元测试覆盖率目标。如果覆盖率较低,我知道如何使构建失败,但我不想这样做,因为缺少测试会减慢所有开发速度。
另一方面,我想在构建概述页面上清楚地看到覆盖率很低 - 我看到的唯一选项是这样的服务消息:
##teamcity[buildStatus status='SUCCESS' text='WARN: Test coverage only 89% {build.status.text}']
但这不会发送任何通知。请问您还有什么建议吗?
【问题讨论】:
-
顺便说一句:像测试覆盖率这样的指标对开发人员来说是一个很好的指南,但是设置像你这样的目标通常会导致代码旨在满足这些任意目标,而不是满足客户的质量需求。例如,如果你有一个 DTO,你最终会编写代码来测试它的 getter 和 setter,只是为了达到你设定的 90% 的目标,但这绝对不会给代码增加任何价值,也不会给你的客户带来任何价值。在 TC 中显示覆盖率报告是个好主意,但设定目标通常被认为是个坏主意。
-
[ExcludeFromCodeCoverage]属性可用于纠正此问题
标签: unit-testing continuous-integration teamcity code-coverage