天天看点

使用maven jacoco生成单元测试报告 并上传sonarQube

使用maven jacoco生成单元测试报告 并上传sonarQube

  • 环境

jdk 8

eclipse Version: Oxygen.3a Release (4.7.3a) Build id: 20180405-1200

maven apache-maven-3.2.5

sonarQube 6.7

  • maven 工程 pom配置
<!-- 解决覆盖率为0的问题 -->
<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-surefire-plugin</artifactId>
	<version>2.3</version>
	<configuration>
		<includes>
			<include>**/*Test*.java</include>
		</includes>
	</configuration>
</plugin>
<plugin>
	<groupId>org.jacoco</groupId>
	<artifactId>jacoco-maven-plugin</artifactId>
		<executions>
			<execution>
				<id>prepare-unit-test-agent</id>
				<goals>
					<goal>prepare-agent</goal>
				</goals>
			</execution>
			<execution>
				<id>jacoco-site</id>
				<phase>verify</phase>
				<goals>
					<goal>report</goal>
				</goals>
				</execution>
			<execution>
				<id>prepare-it-test-agent</id>
				<configuration>
					<propertyName>jacoco.agent.argLine</propertyName>
					<append>true</append>
				</configuration>
				<goals>
					<goal>prepare-agent-integration</goal>
				</goals>
			</execution>
			<execution>
				<id>jacoco-site-it</id>
				<phase>verify</phase>
			<goals>
				<goal>report-integration</goal>
			</goals>
		</execution>
	</executions>
</plugin>
<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-failsafe-plugin</artifactId>
	<version>2.12.4</version>
	<configuration>
		<argLine>${jacoco.agent.argLine}</argLine>
	</configuration>
		<executions>
			<execution>
				<goals>
					<goal>integration-test</goal>
				</goals>
			</execution>
		</executions>
	</plugin>
</plugins>
<resources>
	<resource>
		<directory>src\main\java</directory>
		<includes>
			<include>**/*.properties</include>
			<include>**/*.xml</include>
		</includes>
	</resource>
<resource>
		<directory>src\main\resources</directory>
		 <includes>
 			<include>**/*.*</include>
 		</includes>
 	</resource>
</resources>
<pluginManagement>
	<plugins>
		<plugin>
			<groupId>org.jacoco</groupId>
			<artifactId>jacoco-maven-plugin</artifactId>
			<version>0.7.8</version>
		</plugin>
	</plugins>
</pluginManagement>
           
  • 操作
  1. 步骤1:

    mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=true

    注意使用本地maven运行 而不是eclipse默认maven

  2. 步骤2:查看target 目录下是否生成jacoco.exec文件

    部分版本的maven、eclipse 会在如下目录 target/coverage-reports/jacici-ut.exec

    具体可看运行日志查找 exec文件

    使用maven jacoco生成单元测试报告 并上传sonarQube
  3. 步骤3:将改文件拷贝到target 下 并修改名称为:jacoco.exec(已有该文件的可忽略该步骤) (有知道原因的可在下面留言交流)
  4. 步骤4:mvn sonar:sonar
  5. 步骤5 打开sonarQube查看即可
    使用maven jacoco生成单元测试报告 并上传sonarQube