小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Sonar + Jacoco,強(qiáng)悍的UT, IT 雙覆蓋率統(tǒng)計(jì) | 花錢的年華

 nikybook 2015-10-28

以前做統(tǒng)計(jì)代碼測試覆蓋,一般用Cobertura。以前統(tǒng)計(jì)測試覆蓋率,一般只算Unit Test,或者閉上眼睛把Unit Test和Integration Test一起算。

但是,我們已經(jīng)過了迷信UT的時(shí)代:

  • UT不支持大幅度重構(gòu),如果對(duì)類和方法進(jìn)行重構(gòu)拆分,UT就失去了保障重構(gòu)后代碼仍然正確的作用,還要花時(shí)間按新的類和方法重寫,其他用例對(duì)舊類和方法的mock改起來也是噩夢。
  • UT不支持基于用戶故事的測試,即使覆蓋率100%了,也不保證就是產(chǎn)品經(jīng)理想要的東西。
  • UT對(duì)輸入?yún)?shù)和Mock對(duì)象行為的假設(shè),其實(shí)存在潛在的風(fēng)險(xiǎn)
  • 多線程,網(wǎng)絡(luò)等等難于測試的地方。

在我看來,使用嵌入式容器的集成測試,如Spring Boot所倡導(dǎo)的基于嵌入式Jetty,H2等等的一整套集成測試體系,集合了UT(可本地快速運(yùn)行,可直接assert應(yīng)用內(nèi)部屬性,可統(tǒng)計(jì)覆蓋率,如果CI失敗了可以本地單獨(dú)運(yùn)行、debug、修復(fù)失敗的case再提交)與FT(基于用戶故事黑盒測試)的優(yōu)點(diǎn),對(duì)項(xiàng)目質(zhì)量保證的地位一點(diǎn)不比UT低,所以同樣需要計(jì)算覆蓋率,而不是傳統(tǒng)測試金字塔模型,只依賴UT的覆蓋率。

所以Sonar + Jacoco 這種同時(shí)顯示UT和IT測試覆蓋率的組合非常實(shí)用。

照抄Sonar自帶的Maven UT/IT示例項(xiàng)目,用maven插件,很容易就能跑出效果來,略。

花了我半天時(shí)間的,是如何用Jenkins上的SonarQubeRunner,跑出相同的效果,因?yàn)镾onarQubeRunner不認(rèn)識(shí)Maven是誰。

網(wǎng)上都是半新半舊,不咸不淡的文章,自己又摸索了一輪,得出一個(gè)只要一條不漏,便保證能跑的Jenkins + Maven + Sonar + Jacoco配置

在Jenkins上使用最新的SonarQube Runner 2.4,填入下面的配置


sonar.projectKey=xxx
sonar.projectName=xxx
sonar.projectVersion=xxx
sonar.modules=moduleA,moduleB,IT module C

#這里假設(shè)moduleA,moduleB 在根目錄下的一層目錄,Module C在二層目錄下,需額外定義
#moduleC.projectBaseDir=xxx/moduleC

sonar.sourceEncoding=UTF-8
sonar.language=java
sonar.sources=src/main/java
sonar.tests=src/test/java
sonar.binaries=target/classes

#排除一些不想統(tǒng)計(jì)的類
#sonar.exclusions=**/*IDL.java

sonar.java.coveragePlugin=jacoco
sonar.jacoco.itReportPath=xxx/moduleC/target/jacoco-it.exec,最好寫成絕對(duì)路徑
sonar.junit.reportsPath=target/surefire-reports
sonar.surefire.reportsPath=target/surefire-reports

廣州今天繼續(xù)熱的要命

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多