4

分支覆盖是否适用于以下语句?

我期望一个红色指示器,因为第一个表达式只有测试它是假的而不是真的。

tax.Voided = P_tax.Amount == 1012312870000.42M || P_tax.Amount < 0.00M;

第一个表达式总是假的,第二个有时是真的:报告生成器快照

4

2 回答 2

13

不要将 ReportGenerator 的报告与 OpenCover XML 输出混淆;尽管在 OpenCover 开始制作自己的报告视觉效果之前,ReportGenerator 目前是您目前能找到的最好的。

您的问题是报告工具仅基于序列覆盖率的分支覆盖率报告(红色/绿色)覆盖率。

您将需要查看该方法的分支覆盖率概述(在报告顶部进行了总结) - 要获得更多详细信息,您应该查看该方法的 XML 报告数据,并可能将其与 IL 进行比较(其中OpenCover 从中获取覆盖信息)。

注意:OpenCover 不知道您编写代码的所有语言是已生成的 IL。

于 2011-09-08T02:04:05.000 回答
0

如果您的覆盖工具不了解您可以在一行中包含多个有趣的“可覆盖”实体那么如果该行中的任何覆盖实体被覆盖,您可能会收到一份报告,表明您的行已被覆盖。

检测类文件的工具,AFAIK,以这种方式受到限制,因为类文件仅包含将类代码与源代码行相关的信息,而不是部分行。

我们的Java 测试覆盖工具 (以及我们的测试覆盖工具系列的其他成员)不检测类代码文件。相反,他们检测源代码,并准确跟踪部分行信息(起始行/列、结束行/列)。

我们的工具在显示语句各个部分的覆盖范围时不会有任何问题。

于 2011-09-07T18:13:13.620 回答