分支覆盖是否适用于以下声明?
我期待一个红色指示器,因为第一个表达式只有测试,它是假的而不是真的。
tax.Voided = P_tax.Amount == 1012312870000.42M || P_tax.Amount < 0.00M;
第一个表达式始终为false,第二个表达式有时为真:
答案 0 :(得分:13)
不要将ReportGenerator的报告与OpenCover XML输出混淆;虽然在OpenCover开始处理他们自己的报告视觉效果之前,ReportGenerator目前是您目前最好的。
此处的问题是报告工具不会仅基于序列覆盖范围的分支覆盖率报告(红色/绿色)覆盖率。
您需要查看该方法的分支覆盖概述(总结在报告顶部) - 有关详细信息视图,您应该查看该方法的XML报告数据,并可能将其与IL(OpenCover从中获取覆盖信息)。
注意:OpenCover不知道你编写代码的语言是什么,它看到的是已生成的IL。
答案 1 :(得分:0)
如果您的承保工具不明白您可以在一行中拥有几个有趣的“可覆盖”实体,那么如果该行中有任何承保实体,您可能会收到一条报告,表明您的行已被覆盖被覆盖。
仪器类文件的工具是AFAIK,这种方式受限,因为类文件只包含将类代码与源代码行相关的信息,而不是部分行。
我们的Java Test Coverage tool(以及我们的测试覆盖工具famility的其他成员)不会检测类代码文件。相反,他们检测源代码,并准确跟踪部分线信息(起始行/列,结束行/列)。
我们的工具在陈述声明的各个部分时不会有任何问题。