MS测试代码覆盖率返回不正确的结果

时间:2012-01-05 19:38:34

标签: c# visual-studio-2010 mstest code-coverage

我已经在MVVM模式中编写了一个.Net 4 WPF应用程序,并为该应用程序编写了几个单元测试。我在local.testsettings中启用了代码覆盖并启用了检测。我的问题是代码覆盖率似乎没有返回正确的结果。它显示我的代码的86%被分析。但是,它所说的一些代码没有被击中。为了证明这一点,我在代码上加了断点并进行了单元测试的调试。断点被击中,因此代码肯定被覆盖。为什么代码覆盖不会看到代码被命中?

我正在尝试使用Visual Studio 2010 SP1并从“测试”视图运行测试。

有什么想法吗?

根据请求,这里有一些代码。这是整个班级。代码覆盖率表示构造函数没有被击中,但确实如此。 “Channel = item”上的断点在调试单元测试时命中行。

public class ChannelEventArgs : EventArgs
{
    public ChannelEventArgs(IChannel item)
    {
        Channel = item;
    }

    public IChannel Channel { get; set; }
}

1 个答案:

答案 0 :(得分:0)

只提供了那么多信息,我的有根据的猜测是,你在检测装配时遇到了问题。

检查我的答案中的项目列表: Running NUnit tests in Visual Studio 2010 with code coverage

特别是第一个(“仪器到位”),第三个项目(构建到单个文件夹中)和最后一个项目(命令行选项/ noshadow)将具有您描述的效果。

我还可以想到一个奇怪的情况,即您的测试代码会加载相应的程序集,但您不会编写 单元 测试。