Relatórios de Código de Código de Código para teste unitário e integração com o plugin Jacoco Maven

x

Privacidade e cookies

Este site usa cookies. Continuando, você aceita seu uso. Consiga mais informação; Por exemplo, sobre como controlar cookies.

entendido

anúncios

para desenvolvedores que usaram o Plugin Plugin de cobertura do Maven, eles terão descoberto com penalidade que, se estiverem usando a versão Java 1.7, esse plugin não funcionará corretamente.

Como eu considero que é muito importante executar a análise de cobertura que procurei Tente encontrar um novo plugin que possa executar as tarefas que ele fez com o plugin de cobertura e finalmente encontrou a biblioteca de cobertura de código Jacoco.

jacoco é uma livraria gratuita para analisar a cobertura de teste. Jacoco usa a biblioteca JVM padrão.

jacoco

O problema deste plugin que encontrei ao tentar configurar era que era Não é nada simples. Eu leio tutoriais suficientes até que você seja configurado. Este blog pretende ser um resumo das etapas seguidas de sua configuração.

Como sempre, vamos resumir os requisitos destinados a cobrir com esta tarefa.

  • destina-se a obter relatórios de cobertura de ambos os testes de unidade e integração.
  • relatórios deve ser gerado em rotas diferentes, ou seja, os relatórios dos testes unitários devem ser gerados em uma rota diferente a partir do qual é usado Para os testes de integração.

Começamos com a configuração.

Configurando o plugin Jacoco Maven

Em geral, o plug-in Jacoco é usado com dois Fins:

  • Forneça um acesso ao Jacoco Runtime Agent que registra a execução dos testes.
  • Criar relatórios de cobertura de código da execução dos testes registrados pelo tempo de execução do agente Jacoco .

Para configurar o plug-in Jacoco, essas etapas devem ser seguidas:

  • incluem o plugin Jacoco Maven à seção de plugin do nosso o arquivo Pom.xml
  • Configurar relatórios de cobertura de teste de unidade.
  • Configure os relatórios de cobertura de teste de integração.

A e depois descreva cada uma das etapas .

Inclui Jacoco Maven plugin ao POM.XML Plugins seção

Para incluir o plugin dentro da seção do plugin, a próxima instrução na seção Pom.xml

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

Configurar relatório Cobertura de teste do Reino Unido.

Para configurar a execução da cobertura do código de teste unitária duas execuções devem ser adicionadas à declaração do plugin.

  • A primeira execução cria as manchas do Jacoco Runtime Agent. Isso garante que os dados de desempenho serão escritos no arquivo /tart/coverage-reports/jacoco.ut.ec. O valor da propriedade para surefireargline é estabelecido. Este valor é passado como um argumento da VM quando o teste é executado.
  • A segunda execução cria o relatório de cobertura de código para os testes de unidade após serem executados. Garante que os dados sejam lidos a partir do arquivo de destino / relatórios de cobertura / jacococ-uxec. Os relatórios são salvos no diretório / alvo / site / jacoco-ut.

A parte mais importante da configuração do plug-in é escrita abaixo.

<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>

Configuração de relatórios de cobertura de código para testes de integração

igual à configuração foi incluído para executar a cobertura de código para os testes de unidade também pode ser configurado para o teste de integração, para eles Configure o plug-in adicionando duas execuções ao plugin.

  • A primeira execução cria os pontos do agente de tempo de execução do Jacoco. Isso garante que os dados de execução serão escritos no arquivo /tart/coverage-reports/jacoco.it.esec. O valor da propriedade para FailsafeArgline é estabelecido. Este valor é passado como o argumento VM quando o teste é executado.
  • A segunda execução cria o relatório de cobertura de código para os testes de integração após serem executados. Garante que os dados sejam lidos a partir do arquivo /tart/coverage-reports/jacococ-it.esec. Os relatórios são salvos no diretório / alvo / 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 Configurando o plugin do Maven Surefire

O plug-in do Maven Surefire Plugin será usado para executar os testes de unidade. Como o que é destinado é criar a cobertura do código dos testes de unidade, temos que garantir que o agente Jacoco seja executado quando nossos testes são executados.Para garantir que isso possamos adicionar o valor da propriedade SurefireArgline como um valor da propriedade Plugin Argline.

Abaixo, incluímos as configurações comentadas do plug-in do 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>

Configurando o plugin do Failsefe do Plugin Maven

Como já explicado na entrada anterior, este plugin é o usado para executar os testes de integração. Assim, a gerente análoga, a fim de executar a cobertura do código do nosso teste de integração, devemos garantir que o agente Jacoco seja executado quando nossos testes de integração são executados. Para isso, podemos incluir dentro da configuração do plugin o valor da propriedade FailSeAfeArgline dentro da propriedade Argline do plugin.

<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>

Relatórios de cobertura de código de crívia

  • com tudo isso já temos tudo configurado para poder executar os relatórios de cobertura de código. Em seguida, configuraremos como criar os relatórios de cobertura de código para testes e integração unitários.
  • O perfil Dev será executado durante o desenvolvimento e será o perfil padrão de nossa construção. Quando este perfil é executado, então o teste unitário será executado.
  • O perfil de teste de integração será usado para executar o teste de integração.
  • O perfil de teste será usado para executar Tanta teste de teste como integração.

Diferentes relatórios de cobertura podem ser executados executando os seguintes comandos:

O comando MVN Clean Test irá executar testes de unidade e criar a cobertura Relatórios de unidade de teste no diretório / alvo / site / jacoco-ut

O comando MVN Limke -P Integration-Test executará os testes de integração e criará os relatórios de cobertura de código para os testes de integração no diretório / Target / site / jacoco-it.

O comando MVN Limpo Verify-P Todos os testes executará os testes e integração da unidade e criar os relatórios de cobertura da unidade e do código de integração.

.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *