我在Visual Studio 2010中有一个C#项目,我正在使用单元测试框架编写单元测试。当我查看测试运行的代码覆盖率结果时,覆盖范围不包括属性。它没有将这些属性显示为经过测试或未经过测试,就好像它们根本不重要一样。是否需要翻转以打开属性的代码覆盖率?
另请注意,我已经检查了.testsettings文件,并且没有设置为从代码覆盖范围中排除任何内容,也没有将任何属性添加到将其覆盖范围的类/属性中。
答案 0 :(得分:1)
自动属性似乎没有添加到代码覆盖率中,因此我会检查您自己的属性的实现。
例如,以下代码生成100%的代码覆盖率;
namespace ClassLibrary1
{
public class Class1
{
public int Property1 { get; set; }
}
}
[TestMethod]
public void TestMethod1()
{
var test = new Class1();
Assert.IsNotNull(test);
}
而同样的测试,以及对类的以下更改给出40%的覆盖率;
public class Class1
{
private int _property1;
public int Property1
{
get { return _property1; }
set { _property1 = value; }
}
}