2010-06-11 256 views
3

我正在尋找C++代碼覆蓋率工具,它可以很好地在mutli服務器安裝程序中以及在沒有許可問題(如果不是免費的)上在Windows和Linux上運行。C++代碼覆蓋率工具

我已經做了一些研究,並找到2個免費工具:Covtool和gcov。這些或其他建議有什麼不利之處?

+0

[GCov/LCov文章](http://bobah.net/d4d/tools/code-coverage-with-gcov)。上次我檢查GCC儀器裝置並不是線程安全的,所以如果你打算在單元測試之外的任何東西上運行它,那麼值得一提的是特別值得一提的是。 – bobah 2015-05-15 05:02:19

回答

1

雖然我不記得我的研究爲代碼覆蓋工具的所有細節,我似乎記得的gcov和covtool如下:

  • 他們需要自定義修改構建系統
  • 他們需要定製編譯器標誌和/或鏈接步驟
  • 他們都提供最低限度的輸出和格式化

我們需要爲Windows/Linux和GCC/MSVC和settl支持編輯BullseyeCoverage這是商業和非免費。我們估計,使用免費產品更改我們的構建系統會比花費BullseyeCoverage許可證花費更多。他們的支持非常好,反應迅速,我對該工具的質量非常滿意。

一些好處:

  • 大查詢支持無論是在命令行和GUI形式
  • 要求沒有改變我們的編譯系統
  • 對雙方的影響最小編譯時間和運行時間
  • 提供工具與CruiseControl和Hudson等構建機器人進行集成
  • 用於可視化和導航coverage的好用GUI結果
0

AQTime對於Delphi/C++ Builder用戶很流行,但和其他建議一樣,它不是免費的。

+0

Thankyou。任何免費的C++代碼覆蓋工具推薦? – prattipam 2010-06-15 20:43:56

0

OOVAide程序是一個免費的開源工具,它將測量源文件 並生成代碼覆蓋率統計信息以及顯示哪些行從未運行過 。它是線程安全和高效的。

它是相當透明的,意味着它生成的代碼都是可見的 ,如果需要特殊需求,可以修改您的項目。

源代碼修改的基本思想是它在CLang正在處理的AST的每個語句分組中插入一個宏 。 這通常是在條件或大括號之後。該宏可以被修改爲 ,但默認情況下,它會在數組中以偏移量 增加一個值。我也修改了它在某些情況下寫入文件, ,這允許執行程序跟蹤。

一個問題可能是它的構建系統是有限的,並且必須能夠使用CLang構建的 。它可能不適用於某些類型的項目。但由於 只是通過插入宏修改源代碼,因此可以用 來修改源代碼,然後使用現有的構建系統以 構建修改後的源代碼。

有一個文檔描述它是如何工作的。 http://oovaide.sourceforge.net/articles/TestCoverage.html

0

使用Gcov工具和LCOV工具。 LCOV工具是gcov的圖形化前端。