| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
ygp8
9年前发布

Sonar + Jacoco,强悍的UT, IT 双覆盖率统计

原文  http://calvin1978.blogcn.com/articles/sonar-jacoco.html
 

以前做统计代码测试覆盖,一般用Cobertura。以前统计测试覆盖率,一般只算Unit Test,或者闭上眼睛把Unit Test和Integration Test一起算。

但是,我们已经过了迷信UT的时代,使用嵌入式容器的IT (如Spring Boot所倡导的一整套IT测试体系),对代码质量和重构的帮助一点都不比UT小(UT本质上不支持重构,UT不支持基于用户故事的测试。)

但是IT很容易只跑一个用例就跑出40%的覆盖率来,所以Sonar + Jacoco 这种同时显示UT和IT测试覆盖率的组合非常实用。

照抄Sonar自带的Maven UT/IT示例项目,用maven插件,很容易就能跑出效果来,略。

花了我半天时间的,是如何用Jenkins上的SonarQubeRunner,跑出相同的效果,因为SonarQubeRunner不认识Maven是谁。

网上都是半新半旧,不咸不淡的文章,自己又摸索了一轮,得出一个只要一条不漏,便保证能跑的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

#这里假设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

#排除一些不想统计的类

#sonar.exclusions=**/*IDL.java

sonar.java.coveragePlugin=jacoco

sonar.junit.reportsPath=target/surefire-reports

sonar.surefire.reportsPath=target/surefire-reports

 本文由用户 ygp8 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1441437438096.html
Sonar 代码分析/审查/优化