Introduisez jacoco pour obtenir une couverture lors de l'exécution de TestNG.
Je n'ai touché que jacoco et Cobertura, mais les deux ont le flux suivant. Je ne connais pas les détails.
Par conséquent, il serait très décevant de créer une archive basée sur le fichier de classe réécrit par instrument. S'il vous plaît soyez prudente.
Maven est facile. Il est possible de mesurer l'instrumentation à la volée au moment de l'exécution, mais dans certains cas, la couverture était de 0% lors de l'utilisation de PowerMock. Par conséquent, nous avons adopté la méthode (instrumentation hors ligne) de modification préalable du fichier de classe.
J'utilise NetBeans IDE 8.2 cette fois, mais j'ai osé installer l'ancienne version 0.8.1 car le rapport de résultat ne s'affichait pas correctement à cause d'un bug côté IDE.
pom.xml(dependencies)
<dependency>
<!--L'instrument hors ligne ne fonctionne pas sans lui-->
<groupId>org.jacoco</groupId>
<artifactId>org.jacoco.agent</artifactId>
<version>0.8.1</version>
<scope>test</scope>
<classifier>runtime</classifier>
</dependency>
pom.xml(build/plugins)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<systemPropertyVariables>
<jacoco-agent.destfile>target/jacoco.exec</jacoco-agent.destfile>
</systemPropertyVariables>
<!--↓ Sans cela, la trace de la pile n'apparaîtra pas-->
<trimStackTrace>false</trimStackTrace>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<!-- 0.8.2 @NetBeans IDE 8.S'il est égal à 2, la "couverture du code" n'est pas enregistrée-->
<version>0.8.1</version>
<executions>
<execution>
<id>default-instrument</id>
<goals>
<goal>instrument</goal>
</goals>
</execution>
<execution>
<id>default-restore-instrumented-classes</id>
<goals>
<goal>restore-instrumented-classes</goal>
</goals>
</execution>
<execution>
<id>default-report</id>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
Testez-le dans Maven et lorsque vous avez terminé, «affichez le rapport» dans votre couverture de code.