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。
分享到:
相关推荐
低覆盖率测试能够反映打印机在处理轻量文本和图形时的性能,例如电子邮件、备忘录和其他办公室文档。这样的测试有助于揭示打印机在节省墨粉或墨水方面的效率,以及在连续打印大量低覆盖率文档时的耐用性。 ISO24712...
2. **集成测试框架**:它支持多种流行的Java测试框架,如JUnit、TestNG等,使得在Eclipse环境中进行测试和覆盖率分析更加便捷。 3. **详细的报告**:EclEmma生成详细的HTML报告,展示每个类、方法以及整个项目的覆盖...
4. **IDE集成**:JaCoCo还可以与Eclipse、IntelliJ IDEA等IDE集成,直接在开发环境中查看覆盖率信息。 5. **多模块项目支持**:对于大型的多模块项目,JaCoCo可以聚合所有模块的覆盖率数据,提供整体的覆盖率报告。 ...
Java代码覆盖率测试是软件开发过程中一个重要的质量保证环节,它能帮助开发者了解代码在测试中的执行情况,确保更多的代码被有效的测试覆盖。Clover是一款由Atlassian公司开发的高级代码覆盖率工具,它提供了详细的...
本篇文章将详细探讨如何在Windows环境下使用各种工具来实现C/C++代码覆盖率检查。 1. **Gcov**: Gcov是GCC编译器套件的一部分,可以提供基本的代码覆盖率信息。在Windows上,你需要安装MinGW或者MingW-w64以获得GCC...
代码覆盖率工具是软件开发过程中的重要辅助手段,主要用于评估测试代码对源代码的覆盖程度。在Java开发环境中,为了确保代码质量,单元测试是必不可少的环节。而代码覆盖率工具则可以帮助开发者了解测试用例对程序...
覆盖率测试是衡量代码质量的一个重要指标,主要是评估程序执行过程中有多少代码被执行到了。常见的覆盖率类型包括语句覆盖率、分支覆盖率、条件覆盖率等。语句覆盖率是指程序中的每行代码至少被执行一次;分支覆盖率...
1. **实时代码覆盖率**:在开发环境中,如Eclipse IDE,EclEmma可以实时显示代码覆盖率,即哪些代码行被单元测试执行过,哪些尚未被执行。这使得开发者能快速定位未被测试的代码段,提高测试的全面性。 2. **多种...
【基于Jacoco的代码覆盖率实时监控与精准测试实践】 在软件开发过程中,代码覆盖率是评估测试有效性的重要指标,它能够帮助我们了解测试用例对代码的覆盖程度。Jacoco是一款广泛使用的Java代码覆盖率工具,它提供了...
**jacoco统计手动测试覆盖率...综上所述,JaCoCo作为一款强大的代码覆盖率工具,不仅适用于自动化测试,也能在手动测试场景下发挥重要作用。结合提供的教程,可以更好地理解和运用这个工具,提升测试效率和代码质量。
**黑盒测试需求覆盖率**是软件测试中一个关键的概念,主要关注的是测试是否充分覆盖了软件功能需求。在测试过程中,黑盒测试方法侧重于从用户的角度出发,不关心内部代码结构,而是根据软件应实现的功能来设计和执行...
本文档将详细介绍如何在ISE与Modelsim联合仿真环境中利用Modelsim查看覆盖率的步骤: 1. 首先,你需要启动ISE工作台,这通常是通过双击桌面快捷方式或者在开始菜单中找到相应的程序来完成的。在ISE的工作台上,你...
logcover是Baidu质量部推出的一款专门用于度量异常测试覆盖率的轻量级工具,通过度量异常日志的测试覆盖率来反应异常测试覆盖率,因为打印异常日志的程序分支往往更需要测试覆盖的异常分支。原理: 结合程序源代码...
总的来说,确保黑盒测试覆盖率涉及到多个层面:正确理解需求、采用有效的测试设计方法、灵活应对需求变更、精细的测试流程管理和不断的学习与反思。通过这些综合措施,我们可以提高测试的质量和覆盖率,确保软件产品...
Codecover是一款专为Delphi开发环境设计的程序覆盖率测试工具,它可以帮助开发者精确地了解代码在测试过程中的执行情况,从而提升软件的质量和可靠性。在软件开发中,覆盖率测试是评估代码是否经过充分测试的重要...
在描述中提到的“测试打印机硒鼓的张数”,则进一步明确了这一概念的具体应用方向,即通过标准化的覆盖率测试来评估硒鼓的使用寿命和打印质量。 ### 知识点一:5%覆盖率的意义 在打印行业中,覆盖率是指打印页面上...
**eclemma-3.0.1覆盖率测试工具详解** EclEmma是一款强大的Java代码覆盖率测试工具,集成在Eclipse IDE中,为开发者提供了一种直观的方式来了解他们的代码在测试过程中的执行情况。EclEmma 3.0.1是该工具的一个版本...