SonarQube描述了"条件"这样的报道:
在包含一些布尔表达式的每行代码中,条件覆盖只是回答以下问题:'是否已将每个布尔表达式都评估为true和false?'。这是在单元测试执行期间遵循的流控制结构中可能的分支密度。
http://docs.codehaus.org/display/SONAR/Metric+definitions
嗯,但我怀疑他们的意思是"分支覆盖":
if(A || B || C)
测试A = true且B = true产生100%,而无需检查最后一个表达式(C)。此外,只测试了两个分支 - 整个表达式的true和false,而不是单个表达式。是吗?
据我所知,条件覆盖应检查表达式中的所有条件。
答案 0 :(得分:1)
答案 1 :(得分:1)
对我来说SonarQube 5.6 条件覆盖率与路径覆盖 非常相同,例如:在这里:http://www.onjava.com/pub/a/onjava/2007/03/02/statement-branch-and-path-coverage-testing-in-java.html?page=2
例如,我的测试报告指出,在检查两个布尔标志的if条件下,它坚持在达到100%覆盖率之前必须检查所有4种可能的组合。