關於代碼覆蓋率統計工具,Linux平台下,gcc內置支持gcov,通過編譯時加參數選項,進行代碼插樁,從而實現代碼覆蓋率。在Windows平台下,早在幾年前,我還沒找到特別好用又開源的覆蓋率工具,所以以前公司是自己實現了一套,使用起來也不是很方便。
最近又遇到同樣的問題,不過非常幸運的是,一款開源的Windows平台的C++代碼覆蓋率工具出現了在我的面前:OpenCppCoverage。
OpenCppCoverage是Windows平台下開源的C++代碼覆蓋率工具,使用簡單,功能齊全而強大。2014年才推出的,只恨沒有早點發現。
使用起來非常簡單,它不需要在編譯時插樁,只需要有pdb文件,運行時插樁,通過OpenCppCoverage啟動進程即可。
官網:https://opencppcoverage.codeplex.com/
功能也比較全,主要特點有:
- 不需要重新編譯被測程序,只需要使用OpenCppCoverage運行程序。
- 性能開銷比較小。
- 按模塊、代碼路徑過濾。
- 自動生成html覆蓋率結果報告。
- 支持多個覆蓋率結果合並。
- 集成Jenkins
使用起來不要太簡單,執行:
OpenCppCoverage.exe --sources MySourcePath -- YourProgram.exe arg1 arg2
使用文檔:https://opencppcoverage.codeplex.com/documentation
Jenkins集成:https://opencppcoverage.codeplex.com/wikipage?title=Jenkins
覆蓋率詳細結果
Jenkins集成