c# - 代码覆盖率不包括 Visual Studio 中的属性

标签 c# visual-studio-2010 unit-testing code-coverage

我在 Visual Studio 2010 中有一个 C# 项目,我正在使用单元测试框架为其编写单元测试。当我查看测试运行的代码覆盖率结果时,覆盖率不包括属性。它没有将属性显示为已测试或未测试,就好像它们根本不重要一样。是否需要翻转设置以打开属性的代码覆盖率?

另请注意,我已经检查了 .testsettings 文件,没有任何内容被设置为从代码覆盖范围中排除,我也没有向类/属性添加任何属性以将它们排除在覆盖范围之外。

最佳答案

自动属性似乎没有添加到代码覆盖率中,因此我会检查您自己的属性的实现。

例如,下面的代码产生了 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; }
        }
    }

关于c# - 代码覆盖率不包括 Visual Studio 中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23915390/

相关文章:

python - 单元测试中的自定义异常

c# - 在转换为 "out/ref"的表达式中支持 "object"参数

c# - 如何找到 Id 属性或与导航属性相关的属性?

winforms - 使用 installshield LE 升级时如何保留某些文件?

c++ - 测试我正在编写的程序

java - 在 Selenium 中绕过验证码

c# - Silverlight 4 平铺背景

c# - 通过数组作为 $ajax 参数 MVC

c++ - 为什么附加到调试器的运行速度如此之慢?

java - Java 中是否有框架来设置持久层?