Privacidade e cookies
Este sitio usa cookies. Continuando, acepta o seu uso. Obteña máis información; Por exemplo, sobre como controlar as cookies.
para os desenvolvedores que usaban o O complemento de cobertura de complemento Maven, descubriron con pena de que se están a usar a versión Java 1.7, este complemento non funciona correctamente.
Como considero que é moi importante realizar a análise de cobertura que busquei tentar atopar un novo plugin que podería realizar as tarefas que fixo co plugin cobertura e finalmente atopou Biblioteca cobertura de código Jacoco.
Jacoco é unha libraría libre para analizar a cobertura do exame. JacOCO usa a biblioteca JVM estándar.
O problema deste complemento que atopei ao tentar configurar que era que era Non é nada sinxelo. Lin suficientes tutoriais ata que se configure. Este blog pretende ser un resumo dos pasos seguidos para a súa configuración.
Como sempre, imos resumir os requisitos que están destinados a cubrir con esta tarefa.
- ten como obxectivo obter informes de cobertura de dúas probas de unidade e integración.
- deben xerarse en diferentes rutas, é dicir, os informes das probas da unidade deben xerarse nunha ruta diferente desde a que se usa para as probas de integración.
Comezamos coa configuración.
Configuración de complementos de Jacoco Maven
En xeral, o complemento Jacoco úsase con dous propósitos:
- Proporcione un acceso ao axente de execución de JACOCO que rexistra a execución das probas.
- Crear informes de cobertura de código da execución das probas gravadas polo axente Jacoco Runtime .
Para configurar o complemento de Jacoco estes pasos deben ser seguidos:
- Incluír o complemento Jacoco Maven á sección de complementos da nosa o ficheiro pom.xml
- Configure os informes da cobertura da proba da unidade.
- Configure os informes de cobertura de proba de integración.
a continuación, describa cada un dos pasos .
Incluír complementos de jacoco maven á sección de ficheiros de ficheiros POM.XML
Para incluír o complemento dentro da sección de plugin, a seguinte declaración na sección de complementos do noso ficheiro POM.XML
<plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.6.4</version></plugin>
Configurar a cobertura de proba do Reino Unido UK
Para configurar a execución da cobertura de código de proba unitaria de dúas execucións deberá engadirse á Declaración do complemento.
- A primeira execución crea os puntos do axente de execución de Jacoco. Isto asegura que os datos de rendemento serán escritos no ficheiro /tart/coverage-reports/jacocó.ut.ec. O valor da propiedade para seguramente está establecido. Este valor é aprobado como un argumento do VM cando se executa a proba.
- A segunda execución crea o informe de cobertura de código para as probas da unidade despois de ser executado. Asegura que os datos sexan lidos desde o ficheiro de destino / cobertura-informes / jacococ-ixec. Os informes gárdanse no directorio / obxectivo / sitio / jacoco-UT.
A parte máis importante da configuración do complemento está escrita a continuación.
<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>
Configuración de informes de cobertura de código para probas de integración
igual que se incluíu a configuración para executar a cobertura de código para as probas da unidade tamén se pode configurar para a proba de integración, para eles debemos Configurar o complemento engadindo dúas execucións ao complemento.
- A primeira execución crea os puntos do axente de execución de Jacoco. Isto asegura que os datos de execución escribiranse no ficheiro /tart/coverage-reports/jacocó.it.esec. Está establecido o valor da propiedade a FAILSAFEEARGLINE. Este valor pasa como o argumento VM cando se executa a proba.
- A segunda execución crea o informe de cobertura de código para as probas de integración despois de ser executado. Asegura que os datos sexan lidos do ficheiro /tart/coverage-reports/jacococ-it.esec. Os informes gárdanse no directorio / obxectivo / sitio / 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>
Configuración de complemento Maven Surefire
O complemento Maven Surefire Plugin empregarase para executar as probas da unidade. Porque o que está destinado é crear a cobertura de código das probas da unidade, debemos asegurar que o axente de Jacoco sexa executado cando se executen as nosas probas.Para asegurar que podemos engadir o valor da propiedade SureFireErEngline como un valor da propiedade do complemento de Argline.
Abaixo incluimos a configuración comentada do complemento 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>
Configurar o complemento MAVEN MAVEN FAILSAFE plugin
Como xa se explica na entrada anterior, este complemento é o que se usa para executar as probas de intgratación. Así, a maner análoga, a fin de executar a cobertura de código da nosa proba de integración, debemos garantir que o axente de Jacoco executase cando se executen as nosas probas de integración. Para iso, podemos incluír dentro da configuración do complemento o valor de propiedade de FailSafeErgline dentro da propiedade de Argline do complemento.
<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>
Informes de cobertura de código de crender
- Con todo isto xa temos todo configurado para poder executar os informes de cobertura de código. A continuación configuraremos como crear os informes de cobertura de código para probas e integración de unidade.
- O perfil de dev será executado durante o desenvolvemento e será o perfil predeterminado da nosa construción. Cando se executa este perfil, a proba unitaria será executada.
- O perfil de proba de integración será usado para executar a proba de integración.
- O perfil de todas as probas será usado para executar Tanto proba unitaria como integración.
Os informes de cobertura diferentes poden executarse executando os seguintes comandos:
O comando MVN Clean Test executará probas de unidade e creará a cobertura Informes de unidade de proba no directorio / obxectivo / sitio / jacoco-UT
O comando MVN Clean Test -P de integración-proba de integración executará as probas de integración e creará os informes de cobertura de código para as probas de integración no directorio / Obxectivo / Sitio / JacOCO-IT.
O MVN Clean Verify -P All-Tests Command executará as probas e integración da unidade e creará os informes de cobertura de código de carga e integración.
.