Probably not the only solution to generate a code coverage HMTL report during the maven build process, but the Emma plugin does the job. In one pass. The code is available from Github in the Code-Coverage-One-Pass directory.
Assuming the following class:
with the following JUnit test:
one can configure the pom.xml as following:
It will produce an index.html file in /target/site/emma/ (always the same location, so you can keep you browser open and refresh the after each build process):
Assuming the following class:
public class ClassToTest { public static int coveredMethod(int i) { return i + 2; } public static int uncoveredMethod(int i) { return i + 3; }} |
public class ClassToTestTest { public ClassToTestTest() { } @Test public void testCoveredMethod() { assertEquals(4,ClassToTest.coveredMethod(2)); }} |
<build> <plugins> <plugin> <groupId>org.sonatype.maven.plugin</groupId> <artifactId>emma-maven-plugin</artifactId> <version>1.2</version> <executions> <execution> <phase>process-classes</phase> <goals> <goal>instrument</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.12</version> <configuration> <classesDirectory>${project.build.directory}/generated-classes/emma/classes</classesDirectory> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <configuration> <source>${maven.compiler.source}</source> <target>${maven.compiler.target}</target> </configuration> </plugin> <plugin> <groupId>org.sonatype.maven.plugin</groupId> <artifactId>emma4it-maven-plugin</artifactId> <version>1.3</version> <executions> <execution> <id>instrument</id> <goals> <goal>instrument-project-artifact</goal> </goals> <configuration> <appendEmma>true</appendEmma> </configuration> </execution> <execution> <id>report</id> <phase>post-integration-test</phase> <goals> <goal>report</goal> </goals> <configuration> <sourceSets> <sourceSet> <directory>${project.build.sourceDirectory}</directory> </sourceSet> </sourceSets> </configuration> </execution> </executions> </plugin> </plugins></build><dependencies> <dependency> <groupId>org.sonatype.maven.plugin</groupId> <artifactId>emma-maven-plugin</artifactId> <version>1.2</version> </dependency> ...</dependencies> |
It will produce an index.html file in /target/site/emma/ (always the same location, so you can keep you browser open and refresh the after each build process):

0 comments :
Post a Comment