在Windows下开发C++的程序,CppUnit, GTest等工具相对较为复杂,VS2012及后续的版本IDE中集成的单元测试工具使用起来相当方便快捷,Test Explorer也比较友好。
但怎样在没有安装Visual Studio的机器上或命令行下执行单元测试,以及 怎样导出报告的问题一直没有解决。
现找到方案如下:
1. VS提供了命令下执行单元测试的工具:vstest.console.exe。
2. trx2html等工具可以把生成的XML报告转成可读的HTML报告。
使用方法:
1.拷贝相关文件、工具到目标机器。
a)编译出的单元测试DLL
b)程序运行依赖库。(可以在下面目录中找到)
--“C:Program Files (x86)Microsoft Visual Studio 12.0VC edist”
c)单元测试工具目录TestWindow
--“C:Program Files (x86)Microsoft Visual Studio 12.0Common7IDECommonExtensionsMicrosoftTestWindow”
2. 执行单元测试命令。
执行前需要用Depends查看编译出的依赖DLL是否具备,否则会出现运行失败。
控制台或BAT文件中运行命令:“.TestWindowvstest.console.exe UnitTest_Simple.dll /logger:trx”
-- UnitTest_Simple.dll 为编译出的单元测试DLL。
-- /logger:trx 此参数是为了在TestResults目录输出XML格式的 *.trx测试结果。
3. 转换测试结果 trx文件 为可读的HTML。
TRX为XML文件,可以使用自定义的XSLT样式表来显示出来。
网上也有很多现在的教程、工具,如: trx2html, trxtohtml 等。
可以下载源码,修改样式表XSLT符合自己的报告风格。