1. 程式人生 > >程式碼覆蓋測試工具Kcov簡介及使用

程式碼覆蓋測試工具Kcov簡介及使用

Kcov是一個程式碼覆蓋測試工具,最初基於Bcov,它可在FreeBSD、Linux、OSX系統中使用,支援的語言包括編譯語言(compiled languages)、Python和Bash。與Bcov一樣,Kcov對編譯的程式使用DWARF除錯資訊,以便無需特殊編譯器開關即可收集覆蓋資訊。注:測試程式需要使用Debug模式編譯。

在Ubuntu14.04上安裝Kcov操作步驟:

1. 從 https://github.com/SimonKagstrom/kcov/releases 下載最新穩定版v36原始碼:kcov-36.tar.gz

2. 將kcov-36.tar.gz拷貝到/data/Soft/kcov目錄下,並解壓縮,執行以下命令會產生kcov-36目錄:

sudo tar -xvzf kcov-36.tar.gz

3. 通過sudo apt-get install命令安裝以下依賴項,否則不會生成kcov執行檔案:

sudo apt-get install binutils-dev libcurl4-openssl-dev zlib1g-dev libdw-dev libiberty-dev

4. 進入kcov-36目錄,依次執行如下命令:

sudo mkdir build
cd build
sudo cmake ..
sudo make
sudo make install

5. 驗證Kcov是否安裝正確,檢視Kcov安裝版本,執行命令$ kcov --version,結果如下圖所示:

6. Kcov的使用:以GitHub上的Messy_Test( https://github.com/fengbingchun/Messy_Test )為例:將終端定位到Messy_Test/prj/linux_cmake_CppBaseTest目錄下,執行:

./build.sh
kcov --include-path=../../demo/CppBaseTest kcov_report ./build/CppBaseTest

生成的相關資訊均在kcov_report目錄下,如下圖所示:

其中CppBaseTest.197f3eb3277c3ef0目錄是我們主要關注的,demo/CppBaseTest中的每個.cpp檔案都會生成對應的*.html和*.js檔案,用瀏覽器開啟*.html檔案即可檢視到當前指定檔案的覆蓋率,如下圖所示:multi_threaded_memory_pool.cpp檔案的覆蓋率為88.3%,其中綠色代表執行程式呼叫到,紅色代表執行程式沒有呼叫過:

7. Kcov選項的更多說明可以通過執行kcov --help來檢視,如下圖所示: