在运行thresholds
时,我只是开始尝试设置coverage
,以迫使我们的团队应用专用的阈值标准。
我的问题是,是否需要分别进行tests
和coverage
步骤?在我看来,他们在做完全相同的事情?我当时正在考虑将这两个步骤融入tests-coverage
步骤中,这有意义吗?
答案 0 :(得分:1)
分别运行测试和覆盖率的原因之一是,测量覆盖率需要更改程序以支持收集覆盖率信息。
在Java中,Jacoco和Cobertura都将修改类文件的字节码以添加指令来记录覆盖率。在C ++中,要使用GCov来衡量覆盖率,请使用与创建发行版二进制文件不同的标志来编译这些二进制文件。
因此,对发布工件进行测试以确保发布工件的行为正确是有道理的。然后在单独的运行中针对已检测的工件测量覆盖率。
当然,可以假设启用覆盖的工件在功能上等同于发行工件。因此,不需要运行两次测试。这取决于您(和您的公司)对风险的态度,您可以决定运行两次测试(有和没有覆盖)或启用覆盖后进行一次。