C# VS2012代码覆盖率仅分析测试dll
我试图让代码覆盖率在VS2012 premium中工作,但遇到了一些问题 我有一个带有几个不同项目的C#解决方案,但最显著的是要测试的Kernel.dll和使用NUnit和Rhino mock进行测试的Kernel.Tests.dll 使用NUnit测试适配器(Beta 2),将测试放入测试资源管理器工作正常,运行测试也是如此。但是当涉及到代码覆盖率时,我只从测试dll本身获得分析,而不是测试的代码。这是我不使用.runsettings文件的时候 我还尝试将.runsettings文件(如此处:)与以下规范一起使用:C# VS2012代码覆盖率仅分析测试dll,c#,visual-studio-2012,C#,Visual Studio 2012,我试图让代码覆盖率在VS2012 premium中工作,但遇到了一些问题 我有一个带有几个不同项目的C#解决方案,但最显著的是要测试的Kernel.dll和使用NUnit和Rhino mock进行测试的Kernel.Tests.dll 使用NUnit测试适配器(Beta 2),将测试放入测试资源管理器工作正常,运行测试也是如此。但是当涉及到代码覆盖率时,我只从测试dll本身获得分析,而不是测试的代码。这是我不使用.runsettings文件的时候 我还尝试将.runsettings文件(如此处:
<Include>
<ModulePath>.*\.dll$</ModulePath>
</Include>
<Exclude>
<ModulePath>.*\.Tests\.dll$</ModulePath>
</Exclude>
.\.dll$
.\.Tests\.dll$
但是这只是给了我一个空的结果,因为现在测试dll也没有被包括在内
问题似乎是它没有找到解决方案的其他部分,但我不确定它到底在哪里,或者我需要设置什么才能找到它
有人遇到过同样的问题吗?关于如何修复它有什么想法吗?听起来NUnit测试适配器本身可能有问题。我在VisualStudioGallery的问答部分中读到,他们已经修复了测试适配器的bug,并调试了由测试程序集链接的程序集。这听起来与我有关,所以您可能想在这里提交一个bug:这不是NUnit测试适配器的问题,而是Visual Studio 2012和TFS 2012中的代码覆盖功能的问题。使用
ExcludeFromCodeCoverage
属性装饰所有测试类,覆盖率计算器将减少噪音
请参阅博客和MSDN文章。我在标准MSTest测试中遇到了问题中描述的问题。的“进一步分析”部分中的说明提供了有关问题的更多信息:
- cd“\Team Tools\Dynamic Code Coverage Tools”
- CodeCoverage.exe analyze/include_跳过的_模块my.coverage>analysis.xml
此外,从命令行运行测试似乎首先鼓励VisualStudioUI做正确的事情。总而言之,这并不是最容易开始工作的过程,但使用CodeCoverage.exe,至少你不会完全盲目飞行。嗯,好吧,那我应该这样做。出于好奇,我最终通过安装NCrunch“解决”了这个问题。我也有同样的问题,但VSTest,也就是说,使用微软提供的测试设备。因此,我认为这与NUnit毫无关系。