CI服务器上测试和覆盖步骤之间的区别

时间:2019-03-23 11:21:39

标签: unit-testing continuous-integration code-coverage

在运行thresholds时,我只是开始尝试设置coverage,以迫使我们的团队应用专用的阈值标准。 我的问题是,是否需要分别进行testscoverage步骤?在我看来,他们在做完全相同的事情?我当时正在考虑将这两个步骤融入tests-coverage步骤中,这有意义吗?

enter image description here

1 个答案:

答案 0 :(得分:1)

分别运行测试和覆盖率的原因之一是,测量覆盖率需要更改程序以支持收集覆盖率信息。

在Java中,Jacoco和Cobertura都将修改类文件的字节码以添​​加指令来记录覆盖率。在C ++中,要使用GCov来衡量覆盖率,请使用与创建发行版二进制文件不同的标志来编译这些二进制文件。

因此,对发布工件进行测试以确保发布工件的行为正确是有道理的。然后在单独的运行中针对已检测的工件测量覆盖率。

当然,可以假设启用覆盖的工件在功能上等同于发行工件。因此,不需要运行两次测试。这取决于您(和您的公司)对风险的态度,您可以决定运行两次测试(有和没有覆盖)或启用覆盖后进行一次。