Configure Maven build to capture test coverage using jacoco. Add new org.eclipse.jgit.coverage Maven module to aggregate jacoco test coverage results and generate test coverage HTML report at org.eclipse.jgit.coverage/target/site/jacoco-aggregate/index.html See https://www.eclemma.org/jacoco/trunk/doc/maven.html Change-Id: Iaeec4033e448ebc16965c05ab54109c4155a307a Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>tags/v5.3.0.201901161700-m1
@@ -105,7 +105,7 @@ | |||
<plugin> | |||
<artifactId>maven-surefire-plugin</artifactId> | |||
<configuration> | |||
<argLine>-Xmx256m -Dfile.encoding=UTF-8 -Djava.io.tmpdir=${project.build.directory}</argLine> | |||
<argLine>@{argLine} -Xmx256m -Dfile.encoding=UTF-8 -Djava.io.tmpdir=${project.build.directory}</argLine> | |||
</configuration> | |||
</plugin> | |||
</plugins> |
@@ -0,0 +1,14 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<classpath> | |||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> | |||
<attributes> | |||
<attribute name="maven.pomderived" value="true"/> | |||
</attributes> | |||
</classpathentry> | |||
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> | |||
<attributes> | |||
<attribute name="maven.pomderived" value="true"/> | |||
</attributes> | |||
</classpathentry> | |||
<classpathentry kind="output" path="target/classes"/> | |||
</classpath> |
@@ -0,0 +1 @@ | |||
/target/ |
@@ -0,0 +1,17 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<projectDescription> | |||
<name>org.eclipse.jgit.coverage</name> | |||
<comment></comment> | |||
<projects> | |||
</projects> | |||
<buildSpec> | |||
<buildCommand> | |||
<name>org.eclipse.m2e.core.maven2Builder</name> | |||
<arguments> | |||
</arguments> | |||
</buildCommand> | |||
</buildSpec> | |||
<natures> | |||
<nature>org.eclipse.m2e.core.maven2Nature</nature> | |||
</natures> | |||
</projectDescription> |
@@ -0,0 +1,2 @@ | |||
eclipse.preferences.version=1 | |||
encoding/<project>=UTF-8 |
@@ -0,0 +1,4 @@ | |||
activeProfiles= | |||
eclipse.preferences.version=1 | |||
resolveWorkspaceProjects=true | |||
version=1 |
@@ -0,0 +1,143 @@ | |||
<?xml version="1.0"?> | |||
<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>org.eclipse.jgit</groupId> | |||
<artifactId>org.eclipse.jgit-parent</artifactId> | |||
<version>5.3.0-SNAPSHOT</version> | |||
</parent> | |||
<modelVersion>4.0.0</modelVersion> | |||
<artifactId>org.eclipse.jgit.coverage</artifactId> | |||
<packaging>pom</packaging> | |||
<name>JGit - Test Coverage</name> | |||
<dependencies> | |||
<dependency> | |||
<groupId>org.eclipse.jgit</groupId> | |||
<artifactId>org.eclipse.jgit</artifactId> | |||
<version>5.3.0-SNAPSHOT</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.eclipse.jgit</groupId> | |||
<artifactId>org.eclipse.jgit.ant</artifactId> | |||
<version>5.3.0-SNAPSHOT</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.eclipse.jgit</groupId> | |||
<artifactId>org.eclipse.jgit.archive</artifactId> | |||
<version>5.3.0-SNAPSHOT</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.eclipse.jgit</groupId> | |||
<artifactId>org.eclipse.jgit.http.apache</artifactId> | |||
<version>5.3.0-SNAPSHOT</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.eclipse.jgit</groupId> | |||
<artifactId>org.eclipse.jgit.http.server</artifactId> | |||
<version>5.3.0-SNAPSHOT</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.eclipse.jgit</groupId> | |||
<artifactId>org.eclipse.jgit.lfs</artifactId> | |||
<version>5.3.0-SNAPSHOT</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.eclipse.jgit</groupId> | |||
<artifactId>org.eclipse.jgit.lfs.server</artifactId> | |||
<version>5.3.0-SNAPSHOT</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.eclipse.jgit</groupId> | |||
<artifactId>org.eclipse.jgit.pgm</artifactId> | |||
<version>5.3.0-SNAPSHOT</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.eclipse.jgit</groupId> | |||
<artifactId>org.eclipse.jgit.ui</artifactId> | |||
<version>5.3.0-SNAPSHOT</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.eclipse.jgit</groupId> | |||
<artifactId>org.eclipse.jgit.ssh.apache</artifactId> | |||
<version>5.3.0-SNAPSHOT</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.eclipse.jgit</groupId> | |||
<artifactId>org.eclipse.jgit.test</artifactId> | |||
<version>5.3.0-SNAPSHOT</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.eclipse.jgit</groupId> | |||
<artifactId>org.eclipse.jgit.ant.test</artifactId> | |||
<version>5.3.0-SNAPSHOT</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.eclipse.jgit</groupId> | |||
<artifactId>org.eclipse.jgit.http.test</artifactId> | |||
<version>5.3.0-SNAPSHOT</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.eclipse.jgit</groupId> | |||
<artifactId>org.eclipse.jgit.pgm.test</artifactId> | |||
<version>5.3.0-SNAPSHOT</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.eclipse.jgit</groupId> | |||
<artifactId>org.eclipse.jgit.lfs.test</artifactId> | |||
<version>5.3.0-SNAPSHOT</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.eclipse.jgit</groupId> | |||
<artifactId>org.eclipse.jgit.lfs.server.test</artifactId> | |||
<version>5.3.0-SNAPSHOT</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.eclipse.jgit</groupId> | |||
<artifactId>org.eclipse.jgit.ssh.apache.test</artifactId> | |||
<version>5.3.0-SNAPSHOT</version> | |||
</dependency> | |||
</dependencies> | |||
<build> | |||
<plugins> | |||
<plugin> | |||
<groupId>org.jacoco</groupId> | |||
<artifactId>jacoco-maven-plugin</artifactId> | |||
<executions> | |||
<execution> | |||
<id>aggregate-reports-all</id> | |||
<phase>verify</phase> | |||
<goals> | |||
<goal>report-aggregate</goal> | |||
</goals> | |||
<configuration> | |||
<title>JGit Test Coverage </title> | |||
<outputDirectory>${project.reporting.outputDirectory}/jacoco-aggregate</outputDirectory> | |||
</configuration> | |||
</execution> | |||
</executions> | |||
</plugin> | |||
</plugins> | |||
</build> | |||
<reporting> | |||
<plugins> | |||
<plugin> | |||
<groupId>org.jacoco</groupId> | |||
<artifactId>jacoco-maven-plugin</artifactId> | |||
<reportSets> | |||
<reportSet> | |||
<id>aggregate</id> | |||
<reports> | |||
<report>report-aggregate</report> | |||
</reports> | |||
</reportSet> | |||
</reportSets> | |||
</plugin> | |||
</plugins> | |||
</reporting> | |||
</project> |
@@ -139,7 +139,7 @@ | |||
<plugin> | |||
<artifactId>maven-surefire-plugin</artifactId> | |||
<configuration> | |||
<argLine>-Djava.io.tmpdir=${project.build.directory} -Xmx300m</argLine> | |||
<argLine>@{argLine} -Djava.io.tmpdir=${project.build.directory} -Xmx300m</argLine> | |||
<includes> | |||
<include>**/*Test.java</include> | |||
<include>**/*Tests.java</include> |
@@ -137,7 +137,7 @@ | |||
<plugin> | |||
<artifactId>maven-surefire-plugin</artifactId> | |||
<configuration> | |||
<argLine>-Djava.io.tmpdir=${project.build.directory} -Xmx300m</argLine> | |||
<argLine>@{argLine} -Djava.io.tmpdir=${project.build.directory} -Xmx300m</argLine> | |||
</configuration> | |||
</plugin> | |||
</plugins> |
@@ -111,7 +111,7 @@ | |||
<plugin> | |||
<artifactId>maven-surefire-plugin</artifactId> | |||
<configuration> | |||
<argLine>-Djava.io.tmpdir=${project.build.directory} -Xmx300m</argLine> | |||
<argLine>@{argLine} -Djava.io.tmpdir=${project.build.directory} -Xmx300m</argLine> | |||
</configuration> | |||
</plugin> | |||
</plugins> |
@@ -109,7 +109,7 @@ | |||
<plugin> | |||
<artifactId>maven-surefire-plugin</artifactId> | |||
<configuration> | |||
<argLine>-Djava.io.tmpdir=${project.build.directory}</argLine> | |||
<argLine>@{argLine} -Djava.io.tmpdir=${project.build.directory}</argLine> | |||
</configuration> | |||
</plugin> | |||
</plugins> |
@@ -106,7 +106,7 @@ | |||
<groupId>org.apache.maven.plugins</groupId> | |||
<artifactId>maven-surefire-plugin</artifactId> | |||
<configuration> | |||
<argLine>-Djgit.test.long=true</argLine> | |||
<argLine>@{argLine} -Djgit.test.long=true</argLine> | |||
</configuration> | |||
</plugin> | |||
</plugins> | |||
@@ -133,7 +133,7 @@ | |||
<plugin> | |||
<artifactId>maven-surefire-plugin</artifactId> | |||
<configuration> | |||
<argLine>-Xmx1024m -Dfile.encoding=UTF-8 -Djava.io.tmpdir=${project.build.directory}</argLine> | |||
<argLine>@{argLine} -Xmx1024m -Dfile.encoding=UTF-8 -Djava.io.tmpdir=${project.build.directory}</argLine> | |||
<includes> | |||
<include>**/*Test.java</include> | |||
<include>**/*Tests.java</include> |
@@ -134,7 +134,7 @@ | |||
<groupId>org.apache.maven.plugins</groupId> | |||
<artifactId>maven-surefire-plugin</artifactId> | |||
<configuration> | |||
<argLine>-Djgit.test.long=true</argLine> | |||
<argLine>@{argLine} -Djgit.test.long=true</argLine> | |||
</configuration> | |||
</plugin> | |||
</plugins> | |||
@@ -179,7 +179,7 @@ | |||
<plugin> | |||
<artifactId>maven-surefire-plugin</artifactId> | |||
<configuration> | |||
<argLine>-Xmx1024m -Dfile.encoding=UTF-8 -Djava.io.tmpdir=${project.build.directory}</argLine> | |||
<argLine>@{argLine} -Xmx1024m -Dfile.encoding=UTF-8 -Djava.io.tmpdir=${project.build.directory}</argLine> | |||
<includes> | |||
<include>**/*Test.java</include> | |||
<include>**/*Tests.java</include> |
@@ -211,7 +211,7 @@ | |||
<!-- Properties to enable jacoco code coverage analysis --> | |||
<sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin> | |||
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis> | |||
<sonar.jacoco.reportPath>../target/jacoco.exec</sonar.jacoco.reportPath> | |||
<sonar.jacoco.reportPath>${project.build.directory}/jacoco.exec</sonar.jacoco.reportPath> | |||
</properties> | |||
<repositories> | |||
@@ -297,6 +297,7 @@ | |||
<configuration> | |||
<forkCount>${test-fork-count}</forkCount> | |||
<reuseForks>true</reuseForks> | |||
<argLine>@{argLine}</argLine> | |||
</configuration> | |||
</plugin> | |||
@@ -498,6 +499,7 @@ | |||
<artifactId>jacoco-maven-plugin</artifactId> | |||
<executions> | |||
<execution> | |||
<id>default-prepare-agent</id> | |||
<goals> | |||
<goal>prepare-agent</goal> | |||
</goals> | |||
@@ -512,6 +514,38 @@ | |||
<append>true</append> | |||
</configuration> | |||
</execution> | |||
<execution> | |||
<id>default-report</id> | |||
<goals> | |||
<goal>report</goal> | |||
</goals> | |||
</execution> | |||
<execution> | |||
<id>default-check</id> | |||
<goals> | |||
<goal>check</goal> | |||
</goals> | |||
<configuration> | |||
<haltOnFailure>false</haltOnFailure> | |||
<rules> | |||
<rule> | |||
<element>BUNDLE</element> | |||
<limits> | |||
<limit> | |||
<counter>INSTRUCTION</counter> | |||
<value>COVEREDRATIO</value> | |||
<minimum>50%</minimum> | |||
</limit> | |||
<limit> | |||
<counter>CLASS</counter> | |||
<value>MISSEDCOUNT</value> | |||
<maximum>10</maximum> | |||
</limit> | |||
</limits> | |||
</rule> | |||
</rules> | |||
</configuration> | |||
</execution> | |||
</executions> | |||
</plugin> | |||
<plugin> | |||
@@ -589,6 +623,24 @@ | |||
</reportSet> | |||
</reportSets> | |||
</plugin> | |||
<plugin> | |||
<groupId>org.jacoco</groupId> | |||
<artifactId>jacoco-maven-plugin</artifactId> | |||
<reportSets> | |||
<reportSet> | |||
<reports> | |||
<report>report</report> | |||
</reports> | |||
</reportSet> | |||
<reportSet> | |||
<id>aggregate</id> | |||
<inherited>false</inherited> | |||
<reports> | |||
<report>report-aggregate</report> | |||
</reports> | |||
</reportSet> | |||
</reportSets> | |||
</plugin> | |||
</plugins> | |||
</reporting> | |||
@@ -938,6 +990,8 @@ | |||
<module>org.eclipse.jgit.lfs.test</module> | |||
<module>org.eclipse.jgit.lfs.server.test</module> | |||
<module>org.eclipse.jgit.ssh.apache.test</module> | |||
<module>org.eclipse.jgit.coverage</module> | |||
</modules> | |||
</project> |