查看单元测试用例覆盖率新姿势:IDEA 集成 JaCoCo
1、什么是 IDEA
IDEA 全稱 IntelliJ IDEA,是 Java 編程語言開發(fā)的集成環(huán)境。IntelliJ 在業(yè)界被公認(rèn)為最好的 Java 開發(fā)工具,尤其在智能代碼助手、代碼自動(dòng)提示、重構(gòu)、JavaEE 支持、各類版本工具(git、SVN 等)、JUnit、CVS 整合、代碼分析、 創(chuàng)新的 GUI 設(shè)計(jì)等方面的功能可以說是超常的。
2、什么是 JaCoCo
JaCoCo 是一個(gè)免費(fèi)、開源 Java 代碼覆蓋率工具。
3、IDEA 為什么要集成 JaCoCo
方便查看單元測(cè)試用例覆蓋率。
4、集成步驟
4.1、被測(cè)類
注意:被測(cè)類要放在 main 下面,而不是 test 下面
?編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
4.2、單元測(cè)試用例
注意:單元測(cè)試類(CalcTest)必須和被測(cè)類(Calc)在同一個(gè)包下(com.lemon.testng)
?編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
4.3、配置 Code Coverage
?編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
選擇 Edit Configurations
?編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
選擇 Code Coverage,再選擇 JaCoCo
?編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
右鍵選擇 Run with Coverage
?編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
自動(dòng)彈出代碼覆蓋率界面
4.4、覆蓋率報(bào)表
報(bào)表相對(duì)簡(jiǎn)單,Class 表示類覆蓋率,Method 表示方法覆蓋率,Line 表示行覆蓋率
?
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
4.5、代碼覆蓋情況
單元測(cè)試用例主只寫了 add 方法,所以 add 方法顯示綠色,覆蓋狀態(tài),sub 方法顯示紅色,未被覆蓋。
?編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
新增一個(gè) sub 方法測(cè)試用例,再來看結(jié)果。
?編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
首先 Method 從 1 變成 2,Line 數(shù)也增多了。
?
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
其次,sub 方法顏色也有變化,if 仍是紅色, 但是 else 變成綠色,說明 eles 分支被覆蓋。
?
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
5、總結(jié)
通過上述例子可以看出,通過查看覆蓋率,逐步善測(cè)試用例,寫出的用例至少能保障每個(gè)分支都被執(zhí)行,相比通過需求寫用例更能排查出潛在 bug。
需求 ≠代碼,不能僅圍繞需求寫用例,借助 JaCoCo 覆蓋率工具編寫用例,更符合實(shí)際工作需求,更省心省力。
下面是配套資料,對(duì)于做【軟件測(cè)試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉(cāng)庫(kù),這個(gè)倉(cāng)庫(kù)也陪伴我走過了最艱難的路程,希望也能幫助到你!
最后: 可以在公眾號(hào):程序員小濠?! 免費(fèi)領(lǐng)取一份216頁(yè)軟件測(cè)試工程師面試寶典文檔資料。以及相對(duì)應(yīng)的視頻學(xué)習(xí)教程免費(fèi)分享!,其中包括了有基礎(chǔ)知識(shí)、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫(kù)、抓包工具專題、接口測(cè)試工具、測(cè)試進(jìn)階-Python編程、Web自動(dòng)化測(cè)試、APP自動(dòng)化測(cè)試、接口自動(dòng)化測(cè)試、測(cè)試高級(jí)持續(xù)集成、測(cè)試架構(gòu)開發(fā)測(cè)試框架、性能測(cè)試、安全測(cè)試等。
如果我的博客對(duì)你有幫助、如果你喜歡我的博客內(nèi)容,請(qǐng) “點(diǎn)贊” “評(píng)論” “收藏” 一鍵三連哦!喜歡軟件測(cè)試的小伙伴們,可以加入我們的測(cè)試技術(shù)交流扣扣群:779450660里面有各種軟件測(cè)試資源和技術(shù)討論)
總結(jié)
以上是生活随笔為你收集整理的查看单元测试用例覆盖率新姿势:IDEA 集成 JaCoCo的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: s5p6818/fs4418系统移植实验
- 下一篇: java面向对象