博客地址已更改,文章數量較多不便批量修改,若想訪問源文請到 coologic博客 查閱,網址:www.coologic.cn
如本文記錄地址為 techieliang.com/A/B/C/ 請改為 www.coologic.cn/A/B/C/ 即可查閱
版權聲明:若無來源注明, Techie亮博客文章均為原創。 轉載請以鏈接形式標明本文標題和地址:
本文標題:Qt代碼覆蓋率code coverage(VS版) 本文地址: http://techieliang.com/2017/12/493/
下述說明僅適用於VS編譯,若Mingw可直接使用gcov。
QT代碼覆蓋率測試需要使用VS的開發平台,首先利用QT_addin_vs實現QT在VS下運行。然后使用VS下的OpenCppCoverage工具進行代碼測試。由於OpenCppCoverage自身輸出的報表不好看,所以使用Jenkins工具實現對報表的優化。
實現QT在VS下運行方法見此文:Qt在VS(Visual Studio)中使用
1. OpenCppCoverage安裝
首先安裝OpenCppCoverageSetup-x86-0.9.5.2.exe 默認下一步安裝
然后安裝OpenCppCoverage-0.9.1.1.vsix,這是一個VS的插件。
兩者安裝完成以后打開VS的工具菜單可以看到:
2. 代碼覆蓋率測試
2.1. ?利用VS插件實現代碼覆蓋率測試
在程序可運行的情況下,直接點擊工具菜單下的RunOpenCppCoverage,會運行程序,然后會生成html文件,其內包含代碼覆蓋率報表。測試結果如下:
2.2. 利用cmd命令實現代碼覆蓋率測試
由於命令代碼過長,使用此方法建議用記事本重命名成.cmd文件寫代碼。
OpenCppCoverage –sources D:\QT\qt_test_vs –export_type=binary — D:\QT\qt_test_vs\debug\tst_qt_test_vstest.exe
OpenCppCoverage –sources D:\QT\qt_test_vs –export_type=html — D:\QT\qt_test_vs\debug\tst_qt_test_vstest.exe
OpenCppCoverage –sources D:\QT\qt_test_vs –export_type=cobertura — D:\QT\qt_test_vs\debug\tst_qt_test_vstest.exe
Pause
上述代碼為測試代碼,其中:
–sources D:\QT\qt_test_vs指向項目所在路徑,這個路徑下應該包含.cpp .h文件等
–export_type=XXX 為報表顯示類型,上述三行代碼分別是二進制報表、html報表、cobertura的xml報表。若不寫默認為html。
最后路徑指向被測程序exe文件。
若為html類型報表結果如下:
主頁面顯示程序整體覆蓋率
下一級顯示每個文件覆蓋率
最后點開每個文件顯示每行代碼是否覆蓋,綠色為覆蓋,紅色為未覆蓋。