1. 安装VS enterprise版试了。安装好后,相应的工具貌似就都装好了。

2. 开始插桩dll:
这几个可执行文件都在 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Performance Tools\x64
Batch代码 收藏代码
vsinstr /coverage D:\shary\V2017_publish\nclibd.dll
注意:a. nclibd.dll是待测的dll文件
b. 需要编译时同时生成pdb文件
c. 需要编译时打开link的/profile选项
若成功,会有如下信息:
已将原始文件备份到 D:\shary\V2017_publish\nclibd.dll.orig
已成功检测了文件 D:\shary\V2017_publish\nclibd.dll

3. 开始监控:
Batch代码 收藏代码

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

或者可用

start vsperfmon -coverage -output:"D:\a.coverage"

会显示:

在独立模式下启动
文件名: d:\a.coverage

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

5. 终止监控
Batch代码 收藏代码

vsperfcmd /shutdown  

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

另外:
/Profile 选项设置:
首先,打开您需要测试的程序的解决方案或项目文件,需要说明的是被测试的程序的设置。推荐您使用Debug的编译模式,如果您使用的是Release的编译模式,程序将无法分析出函数的符号。请您在VS中点击Project->Properties->Configuration Properties->Linker->Command Line,在右侧Additional options中填入/Profile,(即 连接器->命令行->其他选项, 手动加入/Profile 参数),代表您告诉链接器Linker,此程序需要被用于VS Profiler。新手非常需要注意的是,当程序性能调优完成后,您需要去掉这个添加的选项,使用Release编译链接生成可以发布的程序。

6. 打开文件“d:\a.coverage”后,可以通过VS查看结果。可以通过全局函数来查看所调用的接口。

问题1:
run -> C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Performance Tools\x64>vsinstr /coverage "D:\shary\NMTCLIB_Stand\bin\nclibd.dll" 报错如下:
错误 VSP1033: 文件“D:\shary\NMTCLIB_Stand\bin\nclibd.dll”中不包含可识别的可执行文件映像

7. 用批处理将上面的流程自动化:

@set localFolder=D:\shary\NMTCLIB_Stand\bin\@set nclibFolder=\\192.168.1.110\test\nclib\20170516

@set codetrunkpath=%localFolder%/../@set VStools="C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Performance Tools\x64"

@copy %nclibFolder% %localFolder% /y

@cd /d  %VStools%vsinstr /coverage "%localFolder%\nclibd.dll"vsperfcmd /start:coverage /output:%localFolder%\unittest.coverage

@goto MSBUILD

:MSBUILDcall "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" amd64msbuild %codetrunkpath%Test\NCLibTestFramework\code\NCLibUnitTest.sln /t:rebuild /p:Configuration=Release /p:platform=x64 /m%codetrunkpath%bin\NCLibUnitTest.exe --gtest_filter=*regression*  > %codetrunkpath%NCLIB.log

因为build时间比较长,所以不能将最后的shutdown放入batch里面,需要单独shutdown。

VS 下环境覆盖率测试相关推荐

  1. 多环境多需求并行下的代码测试覆盖率统计工具实现

    个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈 测试覆盖率常被用来衡量测试的充分性和完整性,也是测试有效性的一个度量.「敏捷开发」的大潮之下,如何在快速迭代的同时保证对被测代码的覆 ...

  2. 基于.net的微服务架构下的开发测试环境运维实践

    眼下,做互联网应用,最火的架构是微服务,最热的研发管理就是DevOps, 没有之一.微服务.DevOps已经被大量应用,它们已经像传说中的那样,可以无所不能.特来电云平台,通过近两年多的实践,发现完全 ...

  3. vue在生产环境、测试环境和开发环境,三种环境下配置不同的api地址

    vue在生产环境.测试环境和开发环境,三种环境下配置不同的api地址 我们大多数在开发的时候,都会有三种环境,一个是开发环境,一个是测试环境,一个是生产环境,我们打包的时候需要根据不同的环境去加载不同 ...

  4. java用户的授权及验证_Java环境下shiro的测试-认证与授权

    Java环境下shiro的测试 1.导入依赖的核心jar包 org.apache.shiro shiro-core 1.3.2 2.认证程序 2.1 构建users配置文件 xxx.ini doGet ...

  5. Anaconda下搭建tensorflow子项目DELF环境及测试

    1新建虚拟环境 conda create -n tensorflow_delf python=3.8(新建) conda activate tensorflow_delf(激活) conda deac ...

  6. 基于SkyEye的覆盖率测试

    目录 01.覆盖率测试概念 02.覆盖率测试方法 03.嵌入式软件覆盖率测试原理 04.SkyEye的重大突破 01.覆盖率测试概念 覆盖率测试是一种白盒测试手段,通常会在软件测试的早期阶段进行,也就 ...

  7. SonarQube +Jenkins +JaCoCo 实现Java单元测试,单节点集成覆盖率测试,集群集成覆盖率测试(三)~集成测试篇

    写在最前: 本文主要讲解SonarQube实现对Java代码的集成覆盖率扫描,代码质量扫描. 其中,集成覆盖率分为单节点,集群两种模式,文内都有详解. 参考链接: 环境版本和安装 SonarQube单 ...

  8. 阿里研究员:线下环境为何不稳定?怎么破

    简介: 为什么线下环境的不稳定是必然的?我们怎么办?怎么让它尽量稳定一点? 这篇文章想讲两件事: 为什么线下环境[1]的不稳定是必然的? 我们怎么办?怎么让它尽量稳定一点? 此外,还会谈一谈如何理解线 ...

  9. 覆盖率测试工具(coverage tool)

    覆盖率测试工具(coverage tool) java: Emma:优点:1 开源软件:2 支持ANT TASK;Emma 是开源的,同时它对应用程序执行速度的影响非常小. 缺点:1 ANT TASK ...

  10. qt工程在linux系统里颜色显示错误_【飞凌嵌入式RK3399开发板试用体验】+QT开发环境搭建测试(二)...

    作者:飞扬的青春 在拿到开发板之后,已经体验了Android操作系统,接下来就是体验Linux下的开发,本次以QT的一个小案例来测试下. 首先是自己先搭建了一个Ubuntu18.04的虚拟机,使用真机 ...

最新文章

  1. 11gR2 grid安装最后报错[INS-20802] Oracle Cluster Verification Utility failed
  2. 2011年全国软件大赛模拟题及参考答案(Java本科组)
  3. android 获取默认存储路径,Android获取外置SD卡存储路径的方法
  4. qt release打包发布_几种解决Qt程序打包后无法连接数据库问题的方法
  5. VS2010 error C299: “Font”:“struct”类型重定义
  6. 20165322 第二周结队编程-四则运算
  7. 判断 json html标签,javascript如何判断是否为json?
  8. devstack安装openstack
  9. 文本分类之一:语言模型
  10. 基于zookeeper的分布式锁实现原理是什么?
  11. java上传zip_JAVA 上传ZIP,RAR文件并解压
  12. 用Python做一款上课点名程序(附源码)
  13. JSR303注解字段校验
  14. CC3200使用MQTT协议连接Onenet平台实践
  15. word文档的只有横线的表格怎样做
  16. Python全栈(八)Flask项目实战之8.CMS后台轮播图管理
  17. 操作ROS 的 msg文件 和 srv文件
  18. IDEA 206个快捷键 动图演示,键盘侠标配
  19. vaex库使用方法python_Python秒开100G数据是怎么办到的?
  20. 我们的2010,我们的2011

热门文章

  1. 淘宝网站的设计与排版
  2. 人们常说的扩充计算机内存,电脑加大内存条有什么好处
  3. CSS+HTML如何写一个类似于淘宝的简单导航栏?
  4. PTA 7-128 大于m的最小素数
  5. 经典动态规划:打家劫舍系列问题
  6. 《UnityAPI.Animator动画器》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Animator+avatar+CrossFade+Key+立钻哥哥++OK++)
  7. gradle Could not resolve 依赖包
  8. 申请德国农工大学计算机案例,德州农工大学世界排名怎么样?
  9. 怎么制作U盘启动盘来安装系统
  10. C语言pow函数的调用