VcTester是一款针与VisualC/C++配套使用的白盒测试工具(包括单元测试、集成测试),它不仅提供在线测试(包括在线脚本驱动、在线脚本桩、在线测试改进),还提供功能强大的集成开发环境(IDE,IntegratedDevelopmentEnvironment),集辑辑、调试、测试与一体,该IDE还支持将各式各样的外部命令嵌进来,籍此集成第三方调测辅助工具。其中,VC的build、rebuild、clean等构建命令是VcTester日常编程中经常用到的,把这些命令集成到VcTester的IDE环境,对提高工作效率大有帮助。
本文描述如何在VcTester或VcSmith中集成VC的构建功能,以及,如何编写批处理文件实现被测工程的自动构建与自动启动测试,这一步是借助VcTester打造每日构建平台所必须的。本文描述的集成过程同时适用于VcTester的共享版(即VcSmith)与商用版。
自动构建集成的原理
VcSmith&VcTester提供了良好的外部工具嵌入功能,在主界面运行主菜单“View|Option...”,在弹出Option对话框的UserTool页,可以增加、删除、修改客户化定制工具的功能,如下图:
我们先看一个简单的扩展命令是如何定义的,在上图界面点Add按钮,弹出一个对话框,我们如下图配置各栏目:
这个外部命令的显示名称为“Editcurrentsource”,它调用Notepad.exe打开当前工程的当前源文件,其中%CseCurrFile%是本集成平台提供的环境变量,当调用该外部命令时,环境变量%CseCurrFile%会替换成当前IDE正在使用的源文件全路径文件名,VcSmith识别环境变量是不区别大小写的。
上例之所以把CseCurrFile环境变量用双引号括起来,是因为文件名可能带空格,双引号括起来表示把引号内字串整体当作一个命令参数。
环境变量可以在外部命令(Command)、命令参数(Argument)、工作路径(Workdir)、图标文件(Imagefile)这4个栏目使用,当用户定制Dosshell命令(即调用cmd.exe)时,还可以在Command与Argument使用DOS的环境变量,比如我们在Command输入“cmd.exe”,在Argument输入“/c”echo%path%&&pause“”,这里“&&”是多个shell命令的连接符,该命令定制后运行,可以正确打印DOS的path环境变量。