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

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

 

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

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

 

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

 

2. 开始插桩dll:

这几个可执行文件都在 C:\Program Files\Microsoft Visual Studio <<version>>\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执行。

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值