gitlab readme 测试覆盖率添加
第一步:添加一个子模块:contract-coverage,然后在这个空的模块里只要发一个pom.xml即可,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.ivy.contract-management</groupId>
<artifactId>parent</artifactId>
<version>1.1-RELEASE</version>
<relativePath>../</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>contract-coverage</artifactId>
<properties>
<build.directory.contract-master>../contract-master/target</build.directory.contract-master>
<build.directory.contract-element>../contract-element/target</build.directory.contract-element>
<classes.directory.contract-master>../contract-master/target/classes</classes.directory.contract-master>
<classes.directory.contract-element>../contract-element/target/classes</classes.directory.contract-element>
<sources.directory.contract-master>../contract-master/src/main/java</sources.directory.contract-master>
<sources.directory.contract-element>../contract-element/src/main/java</sources.directory.contract-element>
<generated-sources.directory.contract-master>../contract-master/target/generated-sources/annotations
</generated-sources.directory.contract-master>
<generated-sources.directory.contract-element>../contract-element/target/generated-sources/annotations
</generated-sources.directory.contract-element>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<!-- Copy the ant tasks jar. Needed for ts.jacoco.report-ant . -->
<execution>
<id>jacoco-dependency-ant</id>
<goals>
<goal>copy</goal>
</goals>
<phase>process-test-resources</phase>
<inherited>false</inherited>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.jacoco</groupId>
<artifactId>org.jacoco.ant</artifactId>
<version>${jacoco.version}</version>
</artifactItem>
</artifactItems>
<stripVersion>true</stripVersion>
<outputDirectory>${basedir}/target/jacoco-jars</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>post-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<!-- Execute an ant task within maven -->
<echo message="Generating JaCoCo Reports"/>
<taskdef name="report" classname="org.jacoco.ant.ReportTask">
<classpath path="${basedir}/target/jacoco-jars/org.jacoco.ant.jar"/>
</taskdef>
<mkdir dir="${basedir}/target/coverage-report"/>
<report>
<executiondata>
<fileset dir="${build.directory.contract-master}">
<include name="jacoco.exec"/>
</fileset>
<fileset dir="${build.directory.contract-element}">
<include name="jacoco.exec"/>
</fileset>
</executiondata>
<structure name="jacoco-multi Coverage Project">
<group name="jacoco-multi">
<classfiles>
<fileset dir="${classes.directory.contract-master}"/>
<fileset dir="${classes.directory.contract-element}"/>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${sources.directory.contract-master}"/>
<fileset dir="${sources.directory.contract-element}"/>
</sourcefiles>
</group>
</structure>
<html destdir="${basedir}/target/coverage-report/html"/>
<xml destfile="${basedir}/target/coverage-report/coverage-report.xml"/>
<csv destfile="${basedir}/target/coverage-report/coverage-report.csv"/>
</report>
</target>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.jacoco</groupId>
<artifactId>org.jacoco.ant</artifactId>
<version>${jacoco.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>第二步: 在README.md里添加地址
[](http://10.138.61.72/src/msa/contract-management/commits/develop)
[](http://10.138.61.72/src/msa/contract-management/commits/develop)
第四步:gitlab-ci.yml 里test stage里添加命令
unit-testing:
stage: test
tags: ["fund_04"]
only:
- master
- ci
- develop
script:
- mvn clean test
- mvn clean verify
- mvn clean verify -f contract-coverage/pom.xml
- cat contract-coverage/target/coverage-report/html/index.html第五步:在gitlab上,Settings -》CI/CD -》General pipelines settings 下 -》 Test coverage parsing 填上匹配规则: Total.*?([0-9]{1,3})%
第六步:
本地执行脚本就能跑出测试覆盖率报告
- mvn clean test
- mvn clean verify
- mvn clean verify -f contract-coverage/pom.xml
- cat contract-coverage/target/coverage-report/html/index.htmlsit环境的话,合并代码时gitlab自动会跑,然后在readme.md 文件里就能看到测试覆盖率
相关推荐
waiwaiLILI 2020-11-03
bxqybxqy 2020-09-30
microsoft00 2020-09-11
strburnchang 2020-07-04
wenjieyatou 2020-06-12
zyjj 2020-06-08
wmliang00 2020-05-30
赵家小少爷 2020-05-16
小惠 2020-05-12
csdmeb 2020-05-01
咏月东南 2020-04-20
csdnyasin 2020-04-11
简单的快乐 2020-04-09
王志龙 2020-03-07
adc00 2020-02-16
TyCoding 2020-02-01
hickwu 2020-01-31