linux 程式碼涵蓋範圍 檢測

來源:互聯網
上載者:User

        gcc/g++內建了gcov 工具可以自動產生一個執行程式碼涵蓋範圍資訊的檔案gcda。只需要帶編譯宏 -fprofile-arcs-ftest-coverage 就可以產生gcno檔案

具體的資訊可見

http://gcc.gnu.org/onlinedocs/gcc-3.3.6/gcc/Gcov-Intro.html#Gcov-Intro

       天主要介紹利用gcov產生的檔案產生比較直觀的web頁面的一款工具lcov ,可以官網http://ltp.sourceforge.net/coverage/lcov.php去下載這款工具我下的是 這個版本。好了廢話不多說,我們通過一個簡單的例子來看看如何使用這款工具。

1.安裝lcov

# tar -zxvf  lcov-1.10.tar.gz

#make install

這樣就可以有兩個工具 lcov  genhtml 可以直接敲命令看看協助資訊 --help 你懂得。。

 

2.測試cpp檔案
#include"stdio.h"#include"string.h"  int Test(int i){        if(i>0)        {                printf("iu>0\n");        }        else{                printf("i < 0\n");        }        return 0;} int main(){        Test(1);        return 0;}

可以看到產生了一個test.gcno的檔案


3.運行程式

./ok

產生了gcda檔案

 

4.執行lcov 組建檔案

lcov -d . -t ok -o coverage.info -b . -c

-d 後面帶 執行程式(ok)的目錄  -o 表示組建檔案

自此產生網頁的條件已經完全具備


5.產生網頁端

genhtml -o result coverage.info

-o 路徑 + 轉換資訊

頁面資訊如下:可以清楚的看到當前的代碼哪一些分支沒有走到。


      總結:

             程式碼涵蓋範圍在一定程度上可以協助我們很好進行單元測試,我們可以將一些測試案例進行上述檢測,就可以知道測試案例是否能很好的覆蓋到代碼全部分支,進一步提高代碼的穩定性。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.