Abbiamo un progetto multi modulo Maven composto da un genitore (HelloWorld) e diversi bambini (HelloWorldServices e HelloWorldPresentation) e uso Jenkins per la compilazione.JaCoCo con Maven - manca il file di dati di esecuzione
L'errore dopo aver eseguito il test di successo è
[INFO] --- jacoco-maven-plugin:0.7.6.201602180812:report (default-cli) @ HelloWorldServices ---
[INFO] Skipping JaCoCo execution due to missing execution data file:/var/lib/jenkins/workspace/HelloWorld/HelloWorldServices/target/jacoco.exec
Le linee prima che dice
[INFO] --- jacoco-maven-plugin:0.7.6.201602180812:prepare-agent (default-cli) @ HelloWorldServices ---
[INFO] argLine set to -javaagent:/var/lib/jenkins/.m2/repository/org/jacoco/org.jacoco.agent/0.7.6.201602180812/org.jacoco.agent-0.7.6.201602180812-runtime.jar=destfile=/var/lib/jenkins/workspace/HelloWorld/HelloWorldServices/target/jacoco.exec
Ecco come ho definito il plugin genitore pom JaCoCo:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.6.201602180812</version>
<configuration>
<destfile>${project.artifactId}/target/jacoco.exec</destfile>
<datafile>${project.artifactId}/target/jacoco.exec</datafile>
</configuration>
<executions>
<execution>
<id>jacoco-initialize</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>jacoco-site</id>
<phase>package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
In no pom ho menzionato esplicitamente surefire. Ho anche provato quello che trovi ovunque per mettere l'argLine nella configurazione ma tutto con lo stesso risultato. Il file JaCoCo .exec non è mai stato creato, qualunque cosa io faccia. Per quanto riguarda gli obiettivi, io uso
mvn clean install jacoco:prepare-agent jacoco:report
Da quando Tralascio gli obiettivi jacoco, che non ha nemmeno visualizza il messaggio INFO.
try 'mvn clean jacoco: prepare-agent install' invece (l'agente tra le due fasi) –