Linux下lcov單元測試覆蓋率
書接上文,要想保持測試的完整性,需要將gtest與lcov配合使用,方能更好地測試原始碼的質量。
一、下載lcov原始碼
原始碼下載連結:https://sourceforge.net/projects/ltp/files/Coverage%20Analysis/LCOV-1.13/
二、解壓原始碼
進入到解壓資料夾,執行命令“make install”安裝lcov
三、編譯中增加編譯引數:-fprofile-arcs -ftest-coverage
(注意:這裡是兩個引數,分別是:-fprofile-arcs 和 -ftest-coverage)
編譯後, 會為每個原始檔生成.gcno結尾的檔案。
四、編譯後執行可執行程式./run_test
執行後,會為每個原始檔,生成gcda結尾的檔案。
五、使用lcov收集統計資料做成圖形化顯示的的資料,可用於分析測試覆蓋率
lcov -c -o test.info -d .
-c :捕捉覆蓋率資料
-d :表示的是目錄,也就是gcno和gcda目錄。使用lcov統計覆蓋率,必須將gcno和gcda放在同一個目錄,並且有原始碼,且原始碼的目錄和編譯時的目錄一樣,否則不能生成。
-o :表示輸出檔案,以.info結尾,用來儲存資料
六、lcov檔案過濾
某些情況下,需要遮蔽第三方庫的覆蓋率計算或者只統計某個資料夾下的覆蓋率計算,就需要用到lcov的檔案過濾功能。
- 移除制定目錄
需要用到--remove引數,以刪除include目錄下所有檔案資訊為例 :
lcov --remove all.info '*/include/*' '' -o result.info
all.info 總的覆蓋率資訊 result.info 篩選後的覆蓋率資訊
- 篩選固定目錄
需要用到--extract引數,以指定samples目錄為例:
lcov --extract all.info '*/samples/*' -o result.info
all.info 總的覆蓋率資訊 result.info 篩選後的覆蓋率資訊
七、獲取html檔案視覺化輸出
genhtml test.info -o output/
output是一個目錄,index.html為導航檔案,使用 web 瀏覽器開啟 index.html 檔案檢視程式碼覆蓋結果。可看到各個資料夾下原始碼檔案的測試覆蓋率,以下是篩選了排除“*/include/*”目錄下檔案的測試覆蓋率資訊:
點選進去,可看到各個檔案被測試的覆蓋率情況,點選到檔案中,每個檔案中哪一行測試到,哪一行沒有測試到。
相關文章
- 單元測試接入覆蓋率
- Mockito提升單元測試覆蓋率Mockito
- 單元測試的覆蓋率計算
- 程式碼覆蓋率與測試覆蓋率比較
- C++語言的單元測試與程式碼覆蓋率C++
- 基於Jacoco的單元測試程式碼覆蓋率統計
- James Shore:不要使用單元測試的程式碼覆蓋率
- idea2022.1 檢視單測覆蓋率展示分支覆蓋率Idea
- 自動化會提高測試覆蓋率,那測試覆蓋率是什麼?
- 開源專案核心程式碼單元測試 100% 覆蓋率實戰
- go 程式碼覆蓋率測試Go
- Jacoco--測試覆蓋率工具
- iOS 覆蓋率檢測原理與增量程式碼測試覆蓋率工具實現iOS
- PouchContainer 整合測試覆蓋率統計AI
- 測試覆蓋率二改實現
- 測試覆蓋率 之 Cobertura的使用
- 從零開始做Vue前端架構(6)單元測試 & 程式碼覆蓋率Vue前端架構
- 測試開發之單元測試-實現Git增量程式碼的Jacoco覆蓋率統計Git
- 單元測試必備:Asp.Net Core程式碼覆蓋率實戰,打造可靠應用 !ASP.NET
- java覆蓋率檢測-jacocoJava
- 如何制定介面自動化測試的覆蓋率?
- 基於JaCoCo的Android測試覆蓋率統計(二)Android
- 生成Github JS 倉庫的測試覆蓋率徽標GithubJS
- 精準測試之覆蓋
- 使用 coverlet 檢視.NET Core應用的測試覆蓋率
- 前端精準測試探索:覆蓋率實時統計工具前端
- 關於super-jacoco測試覆蓋率具體實現
- 簡記前後端如何實現統計測試覆蓋率後端
- vivo 基於 JaCoCo 的測試覆蓋率設計與實踐
- 精準測試與開源工具Jacoco的覆蓋率能力對比開源工具
- maven 多模組專案的測試覆蓋率分析 - jacoco 聚合分析Maven
- pHp程式碼覆蓋率PHP
- 軟體測試培訓之:白盒測試的語句覆蓋法和判定覆蓋法
- 用k*k的方格覆蓋單元格(i,j),單元格可以被覆蓋幾次?
- 北大李戈團隊提出大模型單測生成新方法,顯著提升程式碼測試覆蓋率大模型
- 白盒測試—六種覆蓋方法
- 如何使用 jacoco 統計多個 docker 容器服務的測試覆蓋率Docker
- 測試 之Java單元測試、Android單元測試JavaAndroid