环境
SQ_HOST=https://sonarqube.stuq.ceshiren.com/
SQ_TOKEN=squ_2b550e208198bb2735fb7f4343c69234bc87a56b
单元测试与单元测试覆盖率
https://github.com/spring-projects/spring-petclinic.git
mvn clean package -Dmaven.test.skip=true -Dmaven.gitcommitid.skip=true
mvn clean test package -Dmaven.gitcommitid.skip=true
mvn clean test package org.sonarsource.scanner.maven:sonar-maven-plugin:LATEST:sonar -Dmaven.gitcommitid.skip=true -Dsonar.host.url=$SQ_HOST -Dsonar.login=$SQ_TOKEN
mvn clean test package org.sonarsource.scanner.maven:sonar-maven-plugin:LATEST:sonar -Dmaven.gitcommitid.skip=true -Dsonar.host.url=$SQ_HOST -Dsonar.login=$SQ_TOKEN -Dmaven.test.failure.ignore=true
课间练习 spring-petclinic-rest
https://github.com/spring-petclinic/spring-petclinic-rest
- 构建
- 单元测试
- 覆盖率统计
- sonarqube分析
- 新增代码覆盖
- 把overall与new code的 MEASURES图贴到回复里
集成测试与集成测试覆盖率
https://www.jacoco.org/jacoco/trunk/doc/agent.html
java -jar $JACOCO_HOME/lib/jacococli.jar dump --address 127.0.0.1 --port 6300 --destfile owners.exec
java -jar $JACOCO_HOME/lib/jacococli.jar report --classfiles target/classes/ --html jacoco/owners_report/ --xml jacoco/owners_report.xml --csv jacoco/owners_report.csv jacoco/owners.exec
java -jar $JACOCO_HOME/lib/jacococli.jar report --classfiles target/classes/ --sourcefiles src/main/java/ --html jacoco/owners_report/ --xml jacoco/owners_report.xml --csv jacoco/owners_report.csv jacoco/owners.exec
查找宠物主人,没有根据名字搜索
搜索无结果
搜索只有一条结果
覆盖率进阶知识
增量覆盖率如何统计
super-jaocco
覆盖率功能的service化
https://github.com/didi/super-jacoco
组内共用
带有覆盖率的测试环境
java -jar xxx.jar
# to
java -javaagent... -jar xxx.jar
jenkins job执行
- jacococli.jar dump report
- job启动
手工测试流程
- 自动部署覆盖率环境
- 发起手工测试用例执行
- 手工触发 jenkins job(推荐)、测试平台、提供service
覆盖率丰富度
- xml > html
- xml > sonar 可以联动,跟新增代码、测试用例、代码提交人进行关联
集成测试覆盖率统计
sonar-scanner -Dsonar.host.url=$SQ_HOST -Dsonar.login=$SQ_TOKEN -Dsonar.coverage.jacoco.xmlR
eportPaths=jacoco/owners_report.xml -Dsonar.projectKey=PetClinicIT -Dsonar.sources=src/main/java/ -Dsonar.java.binaries=target/classes/
镜像不可修改问题
- image base origin image
- instance docker run bash -c ‘java -javaagent’
- instance docler exec bash -c ‘stop start’
自动化测试与覆盖率结合
- teardown_session AfterAll 覆盖率收集
自动化测试与精准测试
- setup 清理
- teardown 收集 清理 reset
精准测试章节中再讲