2016-10-30 2 views
0

Pour ma petite Java/application Maven, je me sers dans mon JaCoCo pom.xml comme sous:JaCoCo Rapport Format

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.jacoco</groupId> 
     <artifactId>jacoco-maven-plugin</artifactId> 
     <version>0.7.6.201602180812</version> 
     <configuration> 
     <destFile>${basedir}/target/coverage-reports/jacoco.exec</destFile> 
     </configuration> 
     <executions> 
     <execution> 
      <goals> 
      <goal>prepare-agent</goal> 
      </goals> 
     </execution> 
     <execution> 
      <id>report</id> 
      <phase>package</phase> 
      <goals> 
      <goal>report</goal> 
      </goals> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</build> 

Tant que je n'utilisez le paramètre <destFile>, les rapports par défaut dans le dossier sont target/site/jacoco correctement généré au format XML, CSV et HTML. Mais lorsque j'utilise l'élément <destFile> afin de changer le dossier par défaut où les rapports sont générés, seul le fichier jacoco.exec est généré et rien d'autre. Comment puis-je modifier le dossier de rapport et obtenir les rapports aux formats csv, xml et html?

Répondre

0

Avec le paramètre destFile, vous avez modifié l'emplacement où l'objectif prepare-agent écrira le fichier de données d'exécution. Par défaut, il s'agit de ${project.build.directory}/jacoco.exec, ce qui signifie (toujours par défaut) target/jacoco.exec. Toutefois, l'objectif report s'attend à ce que le chemin d'accès au fichier d'exécution soit passé dans le paramètre dataFile, qui, bien sûr, est par défaut ${project.build.directory}/jacoco.exec, afin qu'ils soient synchronisés. Par conséquent, si vous souhaitez modifier le chemin d'accès à ce fichier d'exécution, vous devez faire correspondre ces deux paramètres. Afin de ne pas dupliquer le chemin, vous pouvez utiliser une propriété Maven pour le faire:

<properties> 
    <jacoco.execution.file>${project.build.directory}/coverage-reports/jacoco.exec</jacoco.execution.file> 
</properties> 
<build> 
    <plugins> 
    <plugin> 
     <groupId>org.jacoco</groupId> 
     <artifactId>jacoco-maven-plugin</artifactId> 
     <version>0.7.7.201606060606</version> 
     <configuration> 
     <destFile>${jacoco.execution.file}</destFile> 
     <dataFile>${jacoco.execution.file}</dataFile> 
     </configuration> 
     <executions> 
     <execution> 
      <goals> 
      <goal>prepare-agent</goal> 
      </goals> 
     </execution> 
     <execution> 
      <id>report</id> 
      <phase>prepare-package</phase> 
      <goals> 
      <goal>report</goal> 
      </goals> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</build> 

Notez que cela ne changera pas le répertoire de sortie des rapports JaCoCo; cela change juste le chemin vers le fichier d'exécution. Pour cela, vous pouvez utiliser le paramètre outputDirectory:

Répertoire de sortie pour les rapports. Notez que ce paramètre n'est pertinent que si l'objectif est exécuté à partir de la ligne de commande ou du cycle de vie de la génération par défaut. Si l'objectif est exécuté indirectement dans le cadre d'une génération de site, le répertoire de sortie configuré dans le plugin de site Maven est utilisé à la place.

et ont l'élément de configuration suivante ajouté:

<configuration> 
    <!-- rest of your JaCoCo configuration --> 
    <outputDirectory>${project.build.directory}/coverage-reports/jacoco</outputDirectory> 
</configuration> 

Cela fera que tous le code HTML, XML, CSV et rapports sont générés sous target/coverage-reports/jacoco. Notez que cette configuration ne sera pas utilisée dans le cadre de la génération du site Maven lors du lancement de mvn site. Au cours de la génération du site, vous devrez configurer le outputDirectory du maven-site-plugin à la place.

+0

Merci encore :) – user1107888