如果我正在使用MSTest,有没有办法测试visual studio中的代码覆盖率?或者我必须购买NCover?
如果微软没有提供内置工具来进行代码覆盖,那么NCover Enterprise是否物有所值,或者旧的测试版是否足够好?
编辑:VS产品的描述以及哪些包括代码覆盖https://www.visualstudio.com/vs/compare/
如果您的VS版本不支持,可以使用TestDriven.NET(http://testdriven.net/) .
如果我正在使用MSTest,有没有办法测试visual studio中的代码覆盖率?或者我必须购买NCover?
如果微软没有提供内置工具来进行代码覆盖,那么NCover Enterprise是否物有所值,或者旧的测试版是否足够好?
编辑:VS产品的描述以及哪些包括代码覆盖https://www.visualstudio.com/vs/compare/
如果您的VS版本不支持,可以使用TestDriven.NET(http://testdriven.net/) .
4 回答
是的,您可以在Visual Studio中找到代码覆盖率信息,前提是您拥有提供该功能的Visual Studio版本,例如Team System . 在VS.NET中设置单元测试时,将创建localtestrun.testrunconfig文件并将其作为解决方案的一部分添加 . 双击此文件,找到对话框左侧的“代码覆盖率”选项 . 选择要为其收集代码覆盖率信息的程序集,然后重新运行单元测试 . 代码覆盖率信息将被收集并可用 . 要获取代码覆盖率信息,请打开测试结果窗口,然后单击代码覆盖率结果按钮,这将打开包含结果的备用窗口 .
MSTest包括代码覆盖率,至少它在VS的版本中有 . 但是,您需要在testrunconfig中启用检测,这只是丑陋而且是主要的PITA .
一个更容易的选择是使用TestDriven.NET,它可以自动覆盖,甚至对于MSTest . 而且由于它使用了MSTest核心,你仍然可以获得所有的VS优点,例如着色(覆盖代码的红/蓝线) . 请参阅here(包括截屏视频),或者因为图像上写了千言万语:
alt text http://www.mutantdesign.co.uk/weblog/images/DrivingMSTestandTeamCoverageusingTes.NET_F424/MSTestAndTeamCoverage_thumb1.gif
对于未来的读者:
哇,这不好玩 . 我希望这可以帮助那些在互联网上的人 .
请注意,“CodeCoverage.exe”的存在可能取决于您拥有的Visual Studio版本 . 您可能必须在构建服务器中安装VS(某些增强版本) .
您还可以将3个UnitTests.dlls组合成一个调用
VSCoverageToHtml.xsl
我还在互联网上找到了一些xsl . (下面的3个链接几乎是相同的xsl)
http://codetuner.blogspot.com/2011_09_01_archive.html
http://jp.axtstar.com/?page_id=258
http://codetuner.blogspot.com/2011/09/convert-mstest-code-covarage-results-in.html
我在这里发布xsl“以防万一”这些URL将来会死掉 . 将下面的xsl放在名为“VSCoverageToHtml.xsl”的文件中(如上所述) .
这是一个小的命令行工具来帮助 .
https://www.microsoft.com/en-us/download/details.aspx?id=21714
另见:
Code Coverage files merging using code in VS 2012 Dynamic Code Coverage
如果您没有Visual Studio终极版,则还可以使用此MSBuild任务生成代码覆盖率报告 .
http://archive.msdn.microsoft.com/vscoveragetoxmltask