网站首页 > 开源技术 正文
sonar接入测试结果
项目执行mvn test指令生成的 测试用例文件在标红位置
将生成的测试用例导入到sonar中
执行命令将测试结果上传到sonarqube中
默认
SONARQUBE_TOKEN=22e813fd70f53cac585ced071058a79fa2a91ff6
#执行测试,把默认位置的测试结果上传
mvn clean test sonar:sonar \
-Dmaven.test.failure.ignore=true \ #忽略测试失败
-Dsonar.host.url=http://192.168.132.128:9000 \ #sonar 服务器地址
-Dsonar.login=$SONARQUBE_TOKEN \
-Dsonar.ws.timeout=300 \ # 超时时间
-Dsonar.projectKey=litemall-$USER \
-Dsonar.projectName=litemall-$USER
使用自定义位置上传测试结果
find . -name "surefire*" ./litemall-db/target/surefire-reports
mvn clean test sonar:sonar \
-Dmaven.test.failure.ignore=true \
-Dsonar.host.url=http://192.168.132.128:9000 \ #sonar 服务器地址
-Dsonar.login=$SONARQUBE_TOKEN \
-Dsonar.ws.timeout=300 \
-Dmaven.test.skip=false \
-Dsonar.junit.reportPaths='./litemall-db/target/surefire-reports,./litemall-db/target/surefire-reports'
覆盖率工具
jacoco底层使用asm框架对代码所生成的类文件进行修改,加入统计指令,从而得知代码有没有被覆盖
ASM:所有字节码插桩框架的底层,性能最高,apm框架的核心基础
JavaAssist:简单易用
ByteBuddy、BTrace、 JVM- Sandbox
jacoco mvn插件使用
https://www.jacoco.org/jacoco/trunk/doc/maven.html
jacoco 命令行使用
https://www.jacoco.org/jacoco/trunk/doc/cli.html
手工统计覆盖率
- 对被测应用进行插桩,然后启动on the fly模式javaagent模式可以在内存中动态修改class字节码,不会修改jar包,所以jar包大小不变offline模式,修改jar包中的class文件,文件会变大
- 执行测试行为
- 导出覆盖率统计结果
- 生成报告
agent下载地址 https://repo1.maven.org/maven2/org/jacoco/org.jacoco.agent/0.8.6/ 5
cli工具下载地址 https://repo1.maven.org/maven2/org/jacoco/org.jacoco.cli/0.8.6/ 2
下载jar到本地服务器
#以on the fly模式启动被测应用
java -javaagent:./org.jacoco.agent-0.8.6-runtime.jar -jar apache-jmeter-5.4.1/bin/ApacheJMeter.jar
#执行后正常结束被测程序会得到覆盖率统计文件,被测应用只要得到执行就可以统计到覆盖率,
可以跟测试用例不在同一个服务器上。
ls jacoco.exec
#生成无源代码的报告
java -jar org.jacoco.cli-0.8.6-nodeps.jar report jacoco.exec --classfiles apache-jmeter-5.4.1/bin/ApacheJMeter.jar --html jacoco_html
#生成有源代码关联的报告
java -jar org.jacoco.cli-0.8.6-nodeps.jar report jacoco.exec --classfiles apache-jmeter-5.4.1/bin/ApacheJMeter.jar --html jacoco_html_src --sourcefiles apache-jmeter-5.4.1_src/apache-jmeter-5.4.1/src/launcher/src/main/java/
动态生成覆盖率
mvn clean \
org.jacoco:jacoco-maven-plugin:0.8.5:prepare-agent \
test \
org.jacoco:jacoco-maven-plugin:0.8.5:report \
-Dmaven.test.failure.ignore=true \
-Dmaven.test.skip=false
覆盖率导入sonarqube 默认路径
mvn sonar:sonar \
-Dsonar.host.url=http://sonarqube.ceshiren.com:9000 \
-Dsonar.login=$SONARQUBE_TOKEN \
-Dsonar.ws.timeout=300 \
-Dsonar.projectKey=litemall-core-$USER \
-Dsonar.projectName=litemall-core-$USER
生成jacoco的覆盖率报告
上传报告到sonar
### 覆盖率导入sonarqube
默认路径
```
mvn sonar:sonar \
-Dsonar.host.url=http://sonarqube.ceshiren.com:9000 \
-Dsonar.login=$SONARQUBE_TOKEN \
-Dsonar.ws.timeout=300 \
-Dsonar.projectKey=litemall-core-$USER \
-Dsonar.projectName=litemall-core-$USER
```
自定义路径
```
SONARQUBE_HOST=http://sonarqube.ceshiren.com:9000
sonar-scanner \
-Dsonar.host.url=$SONARQUBE_HOST \
-Dsonar.login=$SONARQUBE_TOKEN \
-Dsonar.projectKey=litemall_$USER \
-Dsonar.projectName=litemall_$USER \
-Dsonar.sources=$(echo **/src | sed 's# #,#g') \
-Dsonar.java.binaries="**/target" \
-Dsonar.junit.reportPaths=$(find . -name "surefire-reports" | xargs | sed 's# #,#g') \
-Dsonar.coverage.jacoco.xmlReportPaths="**/jacoco/jacoco.xml"
pom文件加入jacoco插件
猜你喜欢
- 2024-09-28 sonar安装(sonar安装部署 windows)
- 2024-09-28 从零开始:Jenkins中代码审计SonarQube生产实践全攻略!
- 2024-09-28 代码质量管理平台SonarQube系列二:与maven集成检测
- 2024-09-28 SonarQube源码静态安全扫描工具使用入门
- 2024-09-28 手把手教你使用项目质量管理工具SonarQube
- 2024-09-28 代码质量管理平台实战|SonarQube 安装配置及 JaCoCo、Maven 集成
- 2024-09-28 四种人际互动动物模型,让你说的话有分量
- 2024-09-28 Sonar 在 Google Cloud Marketplace 提供干净的代码解决方案 SonarQube
- 2024-09-28 案例 | 如何以Sonar为例创建一个适用与所有企业的测试步骤
- 2024-09-28 Jenkins 进阶篇 - SonarQube 集成
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)