天天看點

使用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