Code Code Code Code Code Rapports pour un test unitaire et une intégration avec Jacoco Maven Plugin

x

Confidentialité et cookies

Ce site utilise des cookies. En continuant, vous acceptez votre utilisation. Se procurer plus d’information; Par exemple, sur la façon de contrôler les cookies.

compris

annonces

pour les développeurs qui ont utilisé le Plugin Maven Coverage Plugin, ils auront découvert avec une pénalité que si elles utilisent la version Java 1.7, ce plugin ne fonctionne pas correctement.

Si je considère qu’il est très important d’effectuer l’analyse de la couverture que j’ai recherchée Essayez de trouver un nouveau plugin pouvant effectuer les tâches qu’il a faites avec le plug-in couverture et a finalement trouvé la bibliothèque de couverture de code Jacoco.

Jacoco est une librairie gratuite pour analyser la couverture de test. Jacoco utilise la bibliothèque JVM standard.

Jacoco

Le problème de ce plugin que j’ai trouvé lors de la tentative de configuration était que c’était Pas rien de simple. J’ai lu assez de tutoriels jusqu’à ce que vous soyez configuré. Ce blog vise à résumer les étapes suivies pour sa configuration.

Comme toujours, nous allons résumer les exigences visant à couvrir avec cette tâche.

  • est destiné à obtenir des rapports de couverture des tests unitaires et d’intégration.
  • Les rapports doivent être générés sur différents itinéraires, c’est-à-dire que les rapports des tests de l’unité doivent être générés sur un itinéraire différent à partir duquel il est utilisé. Pour les tests d’intégration.

Nous avons commencé avec la configuration.

Configuration du plug-in Jacoco Maven

En général, le plugin Jacoco est utilisé avec deux Objectifs:

  • Fournissez un accès à Jacoco Runtime Agent qui enregistre l’exécution des tests.
  • Créer une couverture de code de l’exécution des tests enregistrés par l’agent Jacoco Runtime .

Pour configurer le plug-in Jacoco Ces étapes doivent être suivies:

  • Inclure le plugin Jacoco Maven à la section Plugin de notre o fichier pom.xml
  • configure les rapports de couverture de test de l’unité.
  • Configurez les rapports de couverture de test d’intégration.

a décrit ensuite chacune des étapes .

Inclure le plugin Jacoco Maven à la section Plugins de fichiers POM.XML

Pour inclure le plugin dans la section Plugin, l’instruction suivante de la section PlugIS de notre fichier POM.XML

<plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.6.4</version></plugin>

Configurer la couverture de test britannique.

Pour configurer l’exécution de la couverture de code de test unitaire Deux exécutions doivent être ajoutées à la déclaration du plugin.

  • La première exécution crée les taches de Jacoco Runtime Agent. Cela garantit que les données de performance seront écrites dans le fichier /rart/coversion-reports/jacoco.ut.ec. La valeur de la propriété à SureFireArgLine est établie. Cette valeur est transmise sous forme d’argument de la machine virtuelle lorsque le test est exécuté.
  • La deuxième exécution crée le rapport de couverture de code pour les tests de l’unité après avoir été exécuté. Assure que les données sont lues à partir du fichier cible / Coverage-Rapports / jacococ-uxec. Les rapports sont enregistrés dans le répertoire / cible / site / jacoco-ut.

La partie la plus importante de la configuration du plug-in est écrite ci-dessous.

<plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.6.4</version> <executions> <!-- Prepara la propiedad para que el agente JaCoCo runtime será pasado como argumento VM cuando el plugin maven surefire sea ejecutado. --> <execution> <id>pre-unit-test</id> <goals> <goal>prepare-agent</goal> </goals> <configuration> <!-- Establece el path al archivo el cual contiene los datos de la ejecución. --> <destFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</destFile> <!-- Establece el nombre de la propiedad que contiene la configuracion del agente VM runtime JaCoCo. --> <propertyName>surefireArgLine</propertyName> </configuration> </execution> <!-- Asegura que el informe de cobertura de codigo para test unitarios es creado después de ejecutar los test unitarios. --> <execution> <id>post-unit-test</id> <phase>test</phase> <goals> <goal>report</goal> </goals> <configuration> <!-- Establece el path del archivo que contiene los datos de ejecución. --> <dataFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</dataFile> <!-- Establece el directorio de salida para los informes de cobertura. --> <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory> </configuration> </execution> </executions></plugin>

Configuration des rapports de couverture de code pour les tests d’intégration

identique à la configuration a été inclus pour exécuter la couverture de code pour les tests d’unité peut également être configuré pour le test d’intégration, car nous devons Configurez le plugin en ajoutant deux exécutions au plugin.

  • La première exécution crée les taches de Jacoco Runtime Agent. Cela garantit que les données d’exécution seront écrites dans le fichier /tart/coversion-reports/jacoco.it.esec. La valeur de la propriété pour Failstableeargline est établie. Cette valeur est transmise comme argument VM lorsque le test est exécuté.
  • La deuxième exécution crée le rapport de couverture de code pour les tests d’intégration après avoir été exécuté. Assure que les données sont lues à partir du fichier /tart/coversion-reports/jacococ-it.esec. Les rapports sont enregistrés dans le répertoire / cible / site / jacoco-it.

<plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.6.4</version> <executions> <!-- Las ejecuciones requeridas para test unitarios son omitidas. --> <!-- Prepara la propiedad para el agente runtime JaCoCo el cual es pasado como argumento de la VM cuando maven failsafe sea ejecutado. --> <execution> <id>pre-integration-test</id> <phase>pre-integration-test</phase> <goals> <goal>prepare-agent</goal> </goals> <configuration> <!-- Establece el path al archivo que contiene la información de ejecución. --> <destFile>${project.build.directory}/coverage-reports/jacoco-it.exec</destFile> <!-- Establece la propiedad que contiene la configuración del agenteJaCoCo runtime agent. --> <propertyName>failsafeArgLine</propertyName> </configuration> </execution> <!-- Asegura que los informes de cobertura para los test de integración seran ejecutados despues de ejecutar los test de integracion. --> <execution> <id>post-integration-test</id> <phase>post-integration-test</phase> <goals> <goal>report</goal> </goals> <configuration> <!-- Establece el path al archivo que contiene los datos de ejecucion. --> <dataFile>${project.build.directory}/coverage-reports/jacoco-it.exec</dataFile> <!-- Establece el directorio de salida para los test de cobertura. --> <outputDirectory>${project.reporting.outputDirectory}/jacoco-it</outputDirectory> </configuration> </execution> </executions></plugin>

Plugin Configuration de Maven Surefire Plugin

e plug-in Maven SureFire Plugin sera utilisé pour exécuter les tests d’unité. Parce que ce qui est destiné à créer la couverture de code des tests de l’unité, nous devons nous assurer que l’agent Jacoco est exécuté lorsque nos tests sont exécutés.Pour vous assurer que nous pouvons ajouter la valeur de la propriété SureFireArgLine en tant que valeur de la propriété plugin argine.

ci-dessous, nous incluons les paramètres commentés pour le plug-in Maven SureFire Plugin:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.15</version> <configuration> <!-- Establece el argumento VM que sera usado cuando los test unitarios son ejecutados. --> <argLine>${surefireArgLine}</argLine> <!-- Salta los test unitarios cuando el valor de la propiedad skip.unit.tests es true --> <skipTests>${skip.unit.tests}</skipTests> <!-- Excluye los test de integracion cuando los test unitarios son ejecutados.. --> <excludes> <exclude>**/IT*.java</exclude> </excludes> </configuration></plugin>

Configuration du plug-in Maven Failsafe Plugin

Comme déjà expliqué dans la saisie précédente, ce plugin est celui utilisé pour exécuter les tests d’intensité. Ainsi, manoir analogue, afin d’exécuter la couverture de code de notre test d’intégration, nous devons nous assurer que l’agent Jacoco sera exécuté lorsque nos tests d’intégration sont exécutés. Pour cela, nous pouvons inclure dans la configuration du plug-in la valeur de la propriété Fréilstableeargline dans la propriété ArgRIGine du plug-in.

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>2.15</version> <executions> <!-- Asegura que tanto los test de integracion y los objetivos de failsafe maven plugin seran ejecutados. --> <execution> <id>integration-tests</id> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> <configuration> <!-- Establece el argumento VM usado cuando los test de integracion son ejecutados. --> <argLine>${failsafeArgLine}</argLine> <!-- Salta los test de integracion si el valor de la propiedad skip.integration.tests es true --> <skipTests>${skip.integration.tests}</skipTests> </configuration> </execution> </executions></plugin>

Coûtation de CODE CODE

  • avec tout cela, nous avons déjà tout ce que tout est configuré pour pouvoir exécuter les rapports de couverture de code. Ensuite, nous allons configurer comment créer les rapports de couverture de code pour les tests d’unités et l’intégration.
  • Le profil de développement sera exécuté pendant le développement et sera le profil par défaut de notre construction. Lorsque ce profil est exécuté, un test unitaire sera exécuté.
  • Le profil de test d’intégration sera utilisé pour exécuter le test d’intégration.
  • Le profil de tous tests sera utilisé pour exécuter tellement d’unités de test comme l’intégration.

Différentes rapports de couverture peuvent être exécutés en exécutant les commandes suivantes:

La commande MVN Clean Test exécutera des tests d’unité et crée la couverture. Rapports de l’unité d’essai dans le répertoire / cible / site / jacoco-ut

La commande d’intégration d’intégration MVN Clean -P Test -P exécutera les tests d’intégration et crée les rapports de couverture de code pour les tests d’intégration dans le répertoire. / Cible / site / jacoco-it.

La commande MVN Clean Verify -P All-tests exécutera les tests d’unité et l’intégration et créera les rapports de couverture de l’unité et de l’intégration.

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *