在 Visual Studio 2012 中查找代码覆盖率,当测试和源代码位于不同的解决方案中时



我在两种不同的解决方案中有源代码和单元测试。测试项目引用源代码二进制文件。如何找到代码覆盖率?如果我在"测试"菜单下选择"分析代码覆盖率"菜单,Visual Studio 将显示覆盖率,但它看起来像是测试代码的覆盖率,而不是源代码的覆盖率。当我从代码覆盖率窗口中双击测试时,测试代码会突出显示。没有办法看到代码突出显示,可以在源代码(被测试的代码)中显示覆盖的代码,这实际上是在不同的解决方案中。我正在使用Visual studio 2012和Nunit(通过Nunit Visual studio适配器)作为我的单元测试工具。

请更准确地说明您如何运行测试 - NUnit 还是 VS 测试运行程序?

但是,如果您使用 NUnit 运行测试,因为它在这个问题中被标记,那么请查看"OpenCover"工具(只需谷歌一下)。

OpenCover能够启动您的Testrunner(以及所有其他可执行文件),然后执行检测并生成覆盖结果。

它易于配置,例如:

OpenCover.Console.exe -register:user -target:Target.exe -filter:+[*]* -output:output.xml 

典型的用途是批量运行它,然后添加一个报告生成器步骤。

我们在持续集成系统(Jenkins)中以这种方式使用它。

尝试使用NCover等工具。对于不同解决方案中的产品代码和测试代码,我必须像您一样这样做。成功了。但是,您必须阅读文档并调整设置。可悲的是,我忘记了这些细节。

最新更新