VS环境下,没有源码只有dll时做代码覆盖率检查

阅读更多

近期想做代码覆盖率的测试,但是因为只有编译好的dll没有源码,很多看着很方便的工具都不能用。百度了半天能用的就是商用的coverage validator.

 

因为环境是windows+VS+GTEST,就开始研究VS自己的工具。

后来发现其实VS就有提供代码覆盖率的测试。不过只能用命令行方式执行。里面提供了块覆盖率,没有行的。如果有源码,根据生成的记录可以直接对照源码显示。

 

1. 按照网上介绍的目录找exe时,发现没有。这才注意到VS express不支持测试分析模块,相关工具都不提供。只能安装VS enterprise版试了。安装好后,相应的工具貌似就都装好了。

 

2. 开始插桩dll:

这几个可执行文件都在 C:\Program Files\Microsoft Visual Studio <>\Team Tools\Performance Tools>

vsinstr  /coverage D:\Test\TestDLLApp\bin\Debug\test.dll

 注意:a. test.dll是待测的dll文件

            b. 需要编译时同时生成pdb文件

            c. 需要编译时打开link的/profile选项

 

3. 开始监控:

vsperfcmd /start:coverage /output:c:\test\sample.coverage

 

4. 这时可以使用各种测试方法调用待测dll进行测试,覆盖率都会统计到上面的output文件中。

 

5. 终止监控

vsperfcmd /shutdown

 所有数据已经都写入文件,不过只能用VS打开。但是前面所有操作都可以不打开VS执行。

 

 

你可能感兴趣的:(VS环境下,没有源码只有dll时做代码覆盖率检查)