Visual Studio代码覆盖率包括不需要的库

时间:2015-11-27 11:19:57

标签: c++ visual-studio-2010 unit-testing c++-cli code-coverage

在使用C ++ / CLI时,我对单元测试代码覆盖率有疑问。

我已经设法在Visual Studio IDE中使用vsinstrvsperfmon从命令行获得代码覆盖率。但是我现在面临的问题是代码覆盖范围包括来自std库,boost以及其他我不想获取代码覆盖率的库的函数。

我尝试了/EXCLUDE选项,但它根本不起作用。

我有以下两个.rsp个文件:

/coverage
/exclude:std::*
/exclude:boost::*
MyExe.exe

/coverage
/exclude:std::*
/exclude:boost::*
UnitTestsDll.dll 

我使用以下命令检测.exe和单元测试dll:

vsinstr @foo.rsp

然后启动性能监视器:

Start vsperfmon -coverage -output:mytestrun.coverage

之后我从visual studio IDE运行我的单元测试,当他们完成时我关闭了vsperfcmd

当我在visual studio中查看mytestrun.coverage时,它仍然包含所有std和其他库。

我错过了重要的事情吗?

希望有人可以提供帮助。

编辑:

我尝试了以下命令从coverage中排除单元测试: vsinstr -coverage“UnitTestsDll.dll”/ EXCLUDE:UnitTestsNameSpace。*

请注意,我使用::而不是.,因为单元测试命名空间是托管命名空间。在运行代码覆盖并检查它之后,似乎已经摆脱了单元测试的覆盖范围,这是正确的行为。因此,似乎/EXCLUDE适用于.分隔符,而不适用于::分隔符。

0 个答案:

没有答案