Tom*_*han 2 c# code-coverage ncover visual-studio
我有几个单元测试助手扩展方法,例如,IsNotEmpty(this string str)我也为其编写了单元测试.这些测试的基本结构是我有一个测试,它验证扩展方法是否通过并在"良好"输入上返回预期结果,以及验证在"坏"输入上抛出失败异常的测试.例如,上述方法的失败测试可能如下所示:
[TestMethod, Fails]
public void IsNotEmpty_Fails_On_Empty_String()
{
"".IsNotEmpty();
}
Run Code Online (Sandbox Code Playgroud)
Fails我自己写的属性在哪里- 基本上是代理[ExpectedException(typeof(AssertFailedException))].所以我明确地期望在上面测试的唯一一行上抛出一个异常,因此,我不希望该方法一直运行.
但是当我右键单击我的解决方案时,选择"使用 - > NCover测试",我在所有方法(如上面的方法)上得到的代码覆盖率低于100%,结束大括号突出显示为红色.
为什么NCover抱怨我的测试方法没有完成,当我说它不会?
**)对于那些将回复100%代码覆盖率的人来说:不,我并不特别担心不惜一切代价保持100%的代码覆盖率.但是,在这些情况下,*重要的方法显示为列表中未包含的内容,我必须一直进入树中才能看到它只是它们.这是我试图在这里得到的问题 - 一般来说不是100%的代码覆盖率.
小智 5
你在运行调试版本吗?这可能就是问题所在.NCover在调试断点之外工作,并且Microsoft在每个方法的结束括号中添加一个,以便在离开方法之前可以执行此操作.在发布模式下运行应该为您处理那些关闭括号.