Visual Studio Team System 对Unmanaged code 的Code Coverage支持

原创 2007年10月10日 23:32:00

要利用VS进行Code Coverage,你必须安装VSTS版本,找到VSTS安装目录Microsoft Visual Studio 8/Team Tools/Performance Tools,将这个目录加到你的环境变量PATH里。

第一步,进行Code Coverage,首先要instrument你的native binary文件。

vsintr -coverage target.exe

运行之后,该命令将会在目标binary文件中加入一些instrumentation代码用来收集运行信息。

第二步,然后启动coverage monitor来收集信息,并将输出结果到一个文件。

start vsperfmon -coverage -output:mytestrun.coverage

接下来,你可以运行你的程序代码或测试代码,并且运行结束后,你得告诉monitor你运行或测试结束,运行命令:

vsperfcmd -shutdown

这个命令将会等到目标进程结束,这时将有一个.coverage文件产生,如果用VS打开这个文件,你将会看到一个code coverage result窗口,里面有你刚才运行的结果。

现在我们简单结合Unit Test一个例子说明,在这里使用CxxTest测试框架,有关CxxTest测试框架,可以访问http://cxxtest.sourceforge.net/

以下为UnitTest的Makefile文件:

TESTS = ./*.

PERL
=
perl 

#
 Where the CxxTest distribution is unpacked 

CXXTESTDIR 
= 
cxxtestinstallpath 

#
 Check CXXTESTDIR 

!
if !exist($(CXXTESTDIR)cxxtestgen.pl)
 

!error Please fix CXXTESTDIR 

!endif 

!include 
<win32.mak>
 

#
 cxxtestgen needs Perl or Python 

!
if defined(PERL)
 

CXXTESTGEN 
= $(PERL) $(CXXTESTDIR)/cxxtestgen.
pl 

!elseif defined
(PYTHON)
 

CXXTESTGEN 
= $(PYTHON) $(CXXTESTDIR)/cxxtestgen.
py 

!
else
 

!error You must define PERL or PYTHON 

!endif 

all: runner
.cpp runner.obj runner.exe binplace run
 

#
 The arguments to pass to cxxtestgen 

#
 - ParenPrinter is the way MSVC likes its compilation errors 

# - --have-eh/--abort-on-fail are nice when
 you have them 

#CXXTESTGEN_FLAGS = --gui=Win32Gui --runner=ParenPrinter --have-eh --abort-on
-fail 

CXXTESTGEN_FLAGS 
= --runner=ParenPrinter --have-eh --abort-on
-fail 

# How to generate the test runner, "runner.cpp"
 

runner
.cpp: $(TESTS)
 

$(CXXTESTGEN) $(CXXTESTGEN_FLAGS) -o $$(TESTS)
 

runner
.obj: runner.
cpp 

$(CC) -EHsc $(cdebug) $(cflags) $(cvars) runner.
cpp 

runner
.exe: runner.
obj 

$(link) $(ldebug) $(conflags) $*.obj target.lib /out:runner.
exe 


binplace: runner
.
exe 

xcopy *.dll . //



# Command
-line arguments to the runner 

RUNNER_FLAGS 
= -title "CxxTest Runner"
 

# How to run the tests, which should be in runner.
exe 

run
: binplace 

set PATH="
C:/Program Files/Microsoft Visual Studio 8/Team Tools/Performance Tools";PATH 

vsinstr.exe -coverage target.dll 

start vsperfmon.exe -coverage -output:runner.coverage 

runner.exe $(RUNNER_FLAGS) 

vsperfcmd.exe -shutdown 

clean: 

del runner.* 

del *.dll

这样我们在每次build时候就能知道自己Unit Test的Code Coverage结果。

 

Visual Studio Code 的简单试用体验

官方文档介绍:网页链接下载链接:网页链接 (免费) 下面是知乎网友 马天翼  的对《如何评价 Visual Studio Code?》的分享回复,伯乐在线已征得转载许可。若再次转载,请自行征...
  • GarfieldEr007
  • GarfieldEr007
  • 2017年01月15日 00:04
  • 789

使用Visual Studio Team Explorer管理项目源代码

使用Visual Studio Team Explorer管理项目源代码     最近参与了WPMind站长张欣发起的一个WP7开源项目,其中用到了Visual Studio Team Expl...
  • csweier
  • csweier
  • 2014年04月01日 11:49
  • 1402

来自社区的Visual Studio Code使用体验和教程

在刚刚过去的Build 2015大会上,微软公布了很多重要的消息和产品(参见:《开发者必须关注的微软技术热点——Build2015大会综述》)。当然,其中一个让所有(不管是微软生态还是非微软生态下的)...
  • yhhwatl
  • yhhwatl
  • 2016年04月22日 00:56
  • 2028

visual studio code前端插件以及常用快捷键

visual stdio code简洁 这是15年微软随Edge一并发布的轻量级编辑器,用起来感觉比sublime舒服  它还是开源的,简直是微软的良心之作  vs code 下载地址 功...
  • CoolLiye
  • CoolLiye
  • 2017年03月24日 19:22
  • 546

使用visual studio code进行go语言环境搭建

最近在学习go语言,在windows系统中使用visual studio code工具进行插件安装,在下载插件时go get -u -v sourcegraph.com/sqs/goreturns时总...
  • nian1035868500
  • nian1035868500
  • 2017年05月09日 19:21
  • 301

用Visual Studio Code Debug世界上最好的语言

前言 这阵子因缘巧合接手了一个辣鸡项目,是用世界上最好的拍黄片写的,项目基本是另一个小伙伴在撸码,我就兼职打杂和发布做点运维的工作。 然后昨天项目上了测试版之后,一用起来Error满天飞了...
  • tmchongye
  • tmchongye
  • 2017年03月18日 04:30
  • 2293

visual studio code前端插件及常用快捷键

给大家推荐编写前端代码非常舒服的编辑器visual stdio code15年微软发布的轻量级编辑器, 用起来感觉比sublime舒服 传送门 vs code 下载地址拿走不谢 改用它的原因是非...
  • q1056843325
  • q1056843325
  • 2016年10月25日 22:50
  • 12519

使用Visual Studio Code进行开发

感谢原文大大!谢谢! http://www.cnblogs.com/Leo_wl/p/5751187.html 第一部分、简介 TypeScript是一种由微软开发的自由和开源的编程语言。是Jav...
  • hugaozhuang
  • hugaozhuang
  • 2017年05月15日 20:12
  • 1191

清除Visual Studio查找的历史记录

使用Visual Studio大家会发现以前搜索的很多无用记录会遗留下来,时间长了,会产生很多无用记录。但是在Visual Studio中并没有提供清理的方法,下面删除的思路是从注册表着手的。 ...
  • woqin1990
  • woqin1990
  • 2014年03月21日 13:34
  • 1342

NodeJs开发环境搭建之Visual Studio Code(二)

使用Visual Studio Code开发Node.Js 目前Vs Code已经内置的NodeJs开发的许多功能 本文假设已经安装里的NodeJs,更多参考:http://blog.csdn.net...
  • u011127019
  • u011127019
  • 2017年07月04日 10:55
  • 6578
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Visual Studio Team System 对Unmanaged code 的Code Coverage支持
举报原因:
原因补充:

(最多只允许输入30个字)