在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.0\VC\redist”
c)單元測試工具目錄TestWindow
--“C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow”
2. 執行單元測試命令。
執行前需要用Depends查看編譯出的依賴DLL是否具備,否則會出現運行失敗。
控制台或BAT文件中運行命令:“.\TestWindow\vstest.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符合自己的報告風格。