哪些.Net 覆盖工具支持“条件覆盖”?

Joe*_*Joe 3 c# code-coverage ncover dotcover ncrunch

我刚开始使用代码覆盖工具(主要是 C#)。到目前为止,我已经测试了 NCrunch 和 DotCover。

他们似乎都在分支和函数覆盖方面做得很好,但我不能确定他们是否在进行条件覆盖。例如,在我正在测试的某些代码中,只要至少有一条路径通过(或者我错了吗?)但是,在我看来,只有在通过代码的两个逻辑路径都被覆盖的情况下才应该覆盖它。

if (item != "")
{
    glc.AddGrayListItem(GrayListTypeEnum.BlackList, item);
}
Run Code Online (Sandbox Code Playgroud)

我想知道的是,DotCover 或 NCrunch(或任何其他 C# 工具)是否会告诉我,除非这两种情况 (item != null) 和 (item == null) 都经过测试,否则这不会被涵盖。

我查看了各种网站,似乎无法找到关于这些工具中的任何一个是否以这种方式工作,或者是否有另一种工具以这种方式工作的明确答案。你们中有人有关于各种代码覆盖工具提供或不提供的覆盖类型的明确信息吗?

Nat*_*ord 6

当前版本的 OpenCover 将在分支覆盖指标中涵盖这一点:

在此处输入图片说明


500*_*ror 0

就我个人而言,我知道没有覆盖率分析工具可以告诉您语句的假设(不存在)else部分是否if会被执行。