gpt4 book ai didi

c# - 故意失败测试的 NCover 代码覆盖率结果

转载 作者:行者123 更新时间:2023-11-30 21:20:26 24 4
gpt4 key购买 nike

我有几个单元测试辅助扩展方法,例如 IsNotEmpty(this string str) 我也为其编写了单元测试。这些测试的基本结构是,我有一个测试验证扩展方法是否通过并在“好”输入上返回预期结果,另一个测试验证在“坏”输入上抛出失败异常。例如,上述方法的失败测试可能如下所示:

[TestMethod, Fails]
public void IsNotEmpty_Fails_On_Empty_String()
{
"".IsNotEmpty();
}

其中 Fails 是我自己编写的属性 - 基本上是 [ExpectedException(typeof(AssertFailedException))] 的代理。所以我明确期望在上述测试的唯一行上抛出异常,因此,我期望该方法一直运行。

但是,当我右键单击我的解决方案并选择“使用->NCover 进行测试”时,我得到的所有方法(如上述方法)的代码覆盖率都低于 100%*,结尾大括号突出显示为红色。

为什么 NCover 提示我的测试方法没有完成,而我已经说过它不会完成?

**) 对于所有会回答说 100% 代码覆盖率没有必要的人:不,我并不特别担心不惜一切代价保持 100% 代码覆盖率。然而,在这些情况下,重要的方法显示为未包含在列表中,我必须一直深入到树中才能看到只有它们。这就是问题所在我正在尝试到达这里 - 通常不是 100% 的代码覆盖率。

最佳答案

您正在运行调试版本吗?这可能是问题所在。 NCover 从调试断点开始工作,Microsoft 在每个方法的右括号中添加一个断点,以便它可以在离开该方法之前到达那里。在 Release模式下运行应该为您处理这些右括号。

关于c# - 故意失败测试的 NCover 代码覆盖率结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3293608/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com