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 使用 Team Foundation Server - Windows

Visual Studio Code 使用 Team Foundation Server 安装与设置
  • Codec007
  • Codec007
  • 2017-10-27 17:40:00
  • 647

Visual Studio Team System

Managing Users and Groupshttp://msdn2.microsoft.com/en-us/library/ms252477(VS.80).aspx Managing Grou...
  • SeanWXQ
  • SeanWXQ
  • 2007-12-17 13:50:00
  • 444

Visual Studio Team System 2008正式版下载及激活方法

Visual Studio Team System 2008正式版下载(Visual Studio Team System 2008 Team Suite download) 包含VS2008正式版激...
  • NewMap
  • NewMap
  • 2008-01-02 13:43:00
  • 13809

Visual Studio Code + Emmet Web开发

Visual Studio Code
  • xianghongai
  • xianghongai
  • 2017-04-20 13:02:14
  • 958

Visual Studio Team System 2008 Team Suite (包含中文MSDN)安装破解版及序列号下载

  • 2009年08月02日 13:50
  • 2KB
  • 下载

在visual studio下使用jquery,使其有智能提示

 首先看一下Visual Studio带给我们的智能感知惊喜. 要让Visual Studio支持智能感知, 需要下列条件:安装 VS2008 SP1 下载地址: http://msdn.micros...
  • mcy478643968
  • mcy478643968
  • 2010-10-18 13:42:00
  • 3037

Visual Studio Code配置PHP开发环境

准备工作: 1.下载Visual Studio Code 2.下载xampp,因为套装省事,对于个人使用是很方便 3.下载xdebug,记得要对应php版本的,否则无效 步骤: 1....
  • Vezn_King
  • Vezn_King
  • 2017-07-20 09:20:09
  • 6854

managed code和unmanaged code混合debug

首先: 1. managed code的项目属性中debug页里,"Enable unmanaged code debugging"选上。 2. unmanaged code项目属性的de...
  • chuwachen
  • chuwachen
  • 2011-09-20 13:21:02
  • 2783

visual studio code c调试

1、装vsiual studio code 2、装llvm clang 3、装mingw 4、装插件c/c++ clang、c/c++ for visual studio code、clang-...
  • zhanglongtumi
  • zhanglongtumi
  • 2016-09-22 20:18:57
  • 1964

Visual Studio Code介绍

应该有很多人都知道Atom编辑器吧,它是由Github开发的一个跨平台的编辑器。它使用了跨平台的Electron,用前端技术编写图形界面。一开始我也推荐过这个编辑器,但是实际上我平时基本没怎么打开过这...
  • u011054333
  • u011054333
  • 2017-04-10 22:27:47
  • 1410
收藏助手
不良信息举报
您举报文章:Visual Studio Team System 对Unmanaged code 的Code Coverage支持
举报原因:
原因补充:

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