目录
CICD 是持续集成(Continuous Integration)和持续部署(Continuous Deployment)简称。指在研发过程中自动执行一系列脚本来降低开发引入 bug 的概率,在新代码从开发到部署的过程中,尽量减少人工的介入。
(1)CICD的开展场景
1.编译部署
代码提交后的自动构建、自动部署、构建部署结果通知
目前开发leader merger(合并)代码之后即可直接自动构建,自动部署,以及部署结果通知
2 单元测试
开发通过 Junit编写单元测试脚本,开展单测,获取单测报告、jacoco代码覆盖率报告(提测前的两个报告+需规:代码设计方案+Sonar测试报告);
测试覆盖率 :一种测试技术指标,它表明我们的测试用例是否真正完全覆盖了应用程序代码中的各种可能以及在运行这些测试用例时执行了多少代码。测试覆盖可以分为:语句覆盖、分支覆盖、路径覆盖、条件覆盖、边界值覆盖;通过jacoco插件,可以衡量单测的代码覆盖率,得到测试覆盖率结果
3 代码扫描
代码提交自动触发代码扫描,扫描结果计入项目质量,记录跟踪问题,直至问题闭环解决
4 自动化测试
5.全链路测试展示 :
(2)项目实际应用
1.工程引入单元测试
工程配置文件pom.xml文件中配置surefire插件
java
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<skipTests>false</skipTests>
</configuration>
</plugin>
</plugins>
其中skipTests标签为:跳过单元测试标签(false表示不跳过单元测试,做单元测试需要执行单测脚本,故需设置为false或删除此标签)
2.工程pom.xml文件引入:jacoco插件
java
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.2</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<!-- attached to Maven test phase -->
<execution>
<id>report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>