`
shary_1986
  • 浏览: 11167 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

VS 下环境覆盖率测试

阅读更多
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

:MSBUILD
call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" amd64
msbuild %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。
分享到:
评论
1 楼 Arthur_G 2018-11-12  
请问您的哪个问题1是怎么解决的?我也遇到了相同的问题。

相关推荐

    1积分下 5%覆盖率 ISO/IEC24712 标准样张测试

    低覆盖率测试能够反映打印机在处理轻量文本和图形时的性能,例如电子邮件、备忘录和其他办公室文档。这样的测试有助于揭示打印机在节省墨粉或墨水方面的效率,以及在连续打印大量低覆盖率文档时的耐用性。 ISO24712...

    测试代码覆盖率

    2. **集成测试框架**:它支持多种流行的Java测试框架,如JUnit、TestNG等,使得在Eclipse环境中进行测试和覆盖率分析更加便捷。 3. **详细的报告**:EclEmma生成详细的HTML报告,展示每个类、方法以及整个项目的覆盖...

    Java单元测试之代码覆盖率-JaCoCo

    4. **IDE集成**:JaCoCo还可以与Eclipse、IntelliJ IDEA等IDE集成,直接在开发环境中查看覆盖率信息。 5. **多模块项目支持**:对于大型的多模块项目,JaCoCo可以聚合所有模块的覆盖率数据,提供整体的覆盖率报告。 ...

    java代码覆盖率测试工具Clover3.0.365+Junit4.1

    Java代码覆盖率测试是软件开发过程中一个重要的质量保证环节,它能帮助开发者了解代码在测试中的执行情况,确保更多的代码被有效的测试覆盖。Clover是一款由Atlassian公司开发的高级代码覆盖率工具,它提供了详细的...

    java覆盖率测试工具eclemma

    作为一个Eclipse插件,它可以与开发者常用的开发环境完美融合,无需离开IDE就能进行覆盖率测试。它支持多种测试框架,如JUnit、TestNG等,这使得开发者能够灵活地选择最适合他们的测试方案。 EclEmma的核心功能之一...

    windows平台下C/C++代码覆盖率检查工具

    本篇文章将详细探讨如何在Windows环境下使用各种工具来实现C/C++代码覆盖率检查。 1. **Gcov**: Gcov是GCC编译器套件的一部分,可以提供基本的代码覆盖率信息。在Windows上,你需要安装MinGW或者MingW-w64以获得GCC...

    代码覆盖率工具

    代码覆盖率工具是软件开发过程中的重要辅助手段,主要用于评估测试代码对源代码的覆盖程度。在Java开发环境中,为了确保代码质量,单元测试是必不可少的环节。而代码覆盖率工具则可以帮助开发者了解测试用例对程序...

    jacoco统计手动测试覆盖率工具文件

    **jacoco统计手动测试覆盖率...综上所述,JaCoCo作为一款强大的代码覆盖率工具,不仅适用于自动化测试,也能在手动测试场景下发挥重要作用。结合提供的教程,可以更好地理解和运用这个工具,提升测试效率和代码质量。

    覆盖率&并发性测试工具

    覆盖率测试是衡量代码质量的一个重要指标,主要是评估程序执行过程中有多少代码被执行到了。常见的覆盖率类型包括语句覆盖率、分支覆盖率、条件覆盖率等。语句覆盖率是指程序中的每行代码至少被执行一次;分支覆盖率...

    eclemma单元测试代码覆盖率工具

    1. **实时代码覆盖率**:在开发环境中,如Eclipse IDE,EclEmma可以实时显示代码覆盖率,即哪些代码行被单元测试执行过,哪些尚未被执行。这使得开发者能快速定位未被测试的代码段,提高测试的全面性。 2. **多种...

    黑盒测试需求覆盖率

    **黑盒测试需求覆盖率**是软件测试中一个关键的概念,主要关注的是测试是否充分覆盖了软件功能需求。在测试过程中,黑盒测试方法侧重于从用户的角度出发,不关心内部代码结构,而是根据软件应实现的功能来设计和执行...

    ISE与modelsim联合仿真利用modelsim查看覆盖率

    本文档将详细介绍如何在ISE与Modelsim联合仿真环境中利用Modelsim查看覆盖率的步骤: 1. 首先,你需要启动ISE工作台,这通常是通过双击桌面快捷方式或者在开始菜单中找到相应的程序来完成的。在ISE的工作台上,你...

    基于Jacoco的代码覆盖率实时监控与精准测试实践-QECon深圳站2021年全球软件质量&效能大会.pdf

    【基于Jacoco的代码覆盖率实时监控与精准测试实践】 在软件开发过程中,代码覆盖率是评估测试有效性的重要指标,它能够帮助我们了解测试用例对代码的覆盖程度。Jacoco是一款广泛使用的Java代码覆盖率工具,它提供了...

    轻量级覆盖率测试工具logcover.zip

    logcover是Baidu质量部推出的一款专门用于度量异常测试覆盖率的轻量级工具,通过度量异常日志的测试覆盖率来反应异常测试覆盖率,因为打印异常日志的程序分支往往更需要测试覆盖的异常分支。原理: 结合程序源代码...

    黑盒测试如何保证测试的覆盖率

    总的来说,确保黑盒测试覆盖率涉及到多个层面:正确理解需求、采用有效的测试设计方法、灵活应对需求变更、精细的测试流程管理和不断的学习与反思。通过这些综合措施,我们可以提高测试的质量和覆盖率,确保软件产品...

    标准5%百分之五覆盖率文档

    在描述中提到的“测试打印机硒鼓的张数”,则进一步明确了这一概念的具体应用方向,即通过标准化的覆盖率测试来评估硒鼓的使用寿命和打印质量。 ### 知识点一:5%覆盖率的意义 在打印行业中,覆盖率是指打印页面上...

Global site tag (gtag.js) - Google Analytics