SlideShare una empresa de Scribd logo
1 de 17
EMMA Ferramenta para teste de cobertura de código
EMMA é uma ferramenta para calcular a porcentagem de código acessado pelos testes.   O que é
Ela oferece a visão da cobertura alcançada pelos testes por classes, métodos, blocos e linhas. Semelhante ao Cobertura, o EMMA exibe o código da classe testada e especificamente se a linha está sendo abrangida ou não pelos testes. O EMMA possibilita gerar relatórios em HTML, XML ou arquivo txt. Finalidades
Exemplos Página inicial do relatório. Aqui é possível visualizar um resumo do projeto(total de linhas, todos os pacotes e etc).
Na visão de umpacote é exibido todas as classes pertencentes aquele pacote e as porcentagens de cobertura(class, %; method, %; etc). Exemplos (cont.)
Visualização de uma classe. Aqui é possível analisar a cobertura dos métodos da classe. Exemplos (cont.)
Ainda na visualização da classe é possível analisar quais linhas especificamente estão sendo cobertas pelos testes. Exemplos (cont.)
Para integrar o EMMA com o Maven é necessário configurar o “pom.xml” do projeto onde está localizado as classes de testes unitários ou do projeto pai. Por default o relatório do EMMA é gerado na fase de “test” do ciclo de vida de construção “site” do Maven(Build Lifecycle). (mvnsite-deploy). Automatizando o teste do EMMA com Maven
Entretanto, vale lembrar que antes de executar o EMMA é invocado a fase de “test”. Isso garante que o “instrument”, ou seja, as classes compiladas que servirão de base para teste sejam geradas antes do relatório propriamente dito. É possível gerar o relatório do EMMA pelo comando:mvnemma:emma. Automatizando o teste do EMMA com Maven (cont.)
[object Object]
No exemplo a seguir o EMMA informa que na fase “process-classes" será executado seu “goal” “instrument”.Configuração do pom.xml
<build>    <plugins>       <!-- Emma -->       <plugin> <groupId>org.codehaus.mojo</groupId>          <artifactId>emma-maven-plugin</artifactId>          <inherited>true</inherited>          <executions>             <execution>                <phase>process-classes</phase>                <goals>                   <goal>instrument</goal>                </goals>             </execution>          </executions>       </plugin>    </plugins>    </build> Configuração do pom.xml (cont.)
Para que sejam definidas quais classes serão contempladas no relatório é necessário configurar outro plugin: Surefire.  O Surefire irá disparar os testes e criar a base “instrument” para que seja construído o relatório EMMA. ,[object Object],Configuração do pom.xml (cont.)
<build>    <plugins>       <!-- Surefire -->          <plugin>             <groupId>org.apache.maven.plugins</groupId>             <artifactId>maven-surefire-plugin</artifactId>             <version>2.5</version>             <inherited>true</inherited>             <configuration>                <excludes>                   <exclude>br/com/senac/turma5/dao/**/*DAO.class</exclude> <exclude>br/com/senac/turma5/exceptions/*.class</exclude>                   <exclude>br/com/senac/turma5/springmvc/*.class</exclude>                   <exclude>br/com/senac/turma5/util/*.class</exclude </excludes> Configuração do pom.xml (cont.)
<forkMode>once</forkMode>                <reportFormat>xml</reportFormat>             </configuration>          </plugin>    </plugins>    </build> Configuração do pom.xml (cont.)
O relatório HTML gerado pelo plugin do EMMA pode ser incluído nos relatórios exibidos do “site” do projeto.  Para isso é necessário somente mencionar o plugin na tag “reporting” do seu pom.xml ,[object Object],Configuração do pom.xml (cont.)
<reporting>    <plugins>       <!-- EMMA -->       <plugin>          <groupId>org.codehaus.mojo</groupId>          <artifactId>emma-maven-plugin</artifactId>          <inherited>true</inherited>       </plugin>    </plugins> </reporting> Configuração do pom.xml (cont.)

Más contenido relacionado

La actualidad más candente

La actualidad más candente (14)

Aula 07
Aula 07Aula 07
Aula 07
 
Como manipular exceções em java
Como manipular exceções em javaComo manipular exceções em java
Como manipular exceções em java
 
Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7
 
Tratamento de exceções java
Tratamento de exceções   javaTratamento de exceções   java
Tratamento de exceções java
 
Ratchet - Framework para Web Apps - iOS & Android
Ratchet - Framework para Web Apps - iOS & AndroidRatchet - Framework para Web Apps - iOS & Android
Ratchet - Framework para Web Apps - iOS & Android
 
[PUC-MG][DAM][DWEB] Ratchet
[PUC-MG][DAM][DWEB] Ratchet[PUC-MG][DAM][DWEB] Ratchet
[PUC-MG][DAM][DWEB] Ratchet
 
Análise e Projeto de Sistemas: Mockup de um Crud no Balsamiq
Análise e Projeto de Sistemas: Mockup de um Crud no BalsamiqAnálise e Projeto de Sistemas: Mockup de um Crud no Balsamiq
Análise e Projeto de Sistemas: Mockup de um Crud no Balsamiq
 
Visão geral sobre Assertivas e Exceções no Java7
Visão geral sobre Assertivas e Exceções no Java7Visão geral sobre Assertivas e Exceções no Java7
Visão geral sobre Assertivas e Exceções no Java7
 
Aula 2
Aula 2Aula 2
Aula 2
 
Ciclo de vida de um componente react
Ciclo de vida de um componente reactCiclo de vida de um componente react
Ciclo de vida de um componente react
 
Maxima teoria
Maxima teoriaMaxima teoria
Maxima teoria
 
Curso de Java #09 - Estruturas Condicionais (Parte 1)
Curso de Java #09 - Estruturas Condicionais (Parte 1)Curso de Java #09 - Estruturas Condicionais (Parte 1)
Curso de Java #09 - Estruturas Condicionais (Parte 1)
 
Aula 06
Aula 06Aula 06
Aula 06
 
Capítulo 09 - Serviços em Background
Capítulo 09 - Serviços em BackgroundCapítulo 09 - Serviços em Background
Capítulo 09 - Serviços em Background
 

Similar a Configurando o EMMA com Maven

Similar a Configurando o EMMA com Maven (20)

Struts Cap10 DepuraçãO E Log
Struts Cap10 DepuraçãO E LogStruts Cap10 DepuraçãO E Log
Struts Cap10 DepuraçãO E Log
 
Conhecendo o Struts 2 - Java Tech Day 2007
Conhecendo o Struts 2 - Java Tech Day 2007Conhecendo o Struts 2 - Java Tech Day 2007
Conhecendo o Struts 2 - Java Tech Day 2007
 
FIT - Framework for Integration Tests
FIT - Framework for Integration TestsFIT - Framework for Integration Tests
FIT - Framework for Integration Tests
 
Spring & Struts
Spring & StrutsSpring & Struts
Spring & Struts
 
Python para Programadores
Python para ProgramadoresPython para Programadores
Python para Programadores
 
Java1
Java1Java1
Java1
 
Tw Course Ajax 2007 Ap05
Tw Course Ajax 2007 Ap05Tw Course Ajax 2007 Ap05
Tw Course Ajax 2007 Ap05
 
PHP FrameWARks - FISL
PHP FrameWARks - FISLPHP FrameWARks - FISL
PHP FrameWARks - FISL
 
Java3
Java3Java3
Java3
 
Facelets
FaceletsFacelets
Facelets
 
Introdução ao Java 5
Introdução ao Java 5Introdução ao Java 5
Introdução ao Java 5
 
Java 13 Excecoes
Java 13 ExcecoesJava 13 Excecoes
Java 13 Excecoes
 
Puppet – Torne Seu Datacenter áGil
Puppet – Torne Seu Datacenter áGilPuppet – Torne Seu Datacenter áGil
Puppet – Torne Seu Datacenter áGil
 
Melhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryMelhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQuery
 
Wicket 2008
Wicket 2008Wicket 2008
Wicket 2008
 
Testes Unitários usando TestNG
Testes Unitários usando TestNGTestes Unitários usando TestNG
Testes Unitários usando TestNG
 
PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de software
 
Desenvolvendo para magento - primeiros passos
Desenvolvendo para magento - primeiros passosDesenvolvendo para magento - primeiros passos
Desenvolvendo para magento - primeiros passos
 
Spring Capitulo 02
Spring Capitulo 02Spring Capitulo 02
Spring Capitulo 02
 
Tutorial Dwr - Configuração e Uso
Tutorial Dwr - Configuração e UsoTutorial Dwr - Configuração e Uso
Tutorial Dwr - Configuração e Uso
 

Configurando o EMMA com Maven

  • 1. EMMA Ferramenta para teste de cobertura de código
  • 2. EMMA é uma ferramenta para calcular a porcentagem de código acessado pelos testes. O que é
  • 3. Ela oferece a visão da cobertura alcançada pelos testes por classes, métodos, blocos e linhas. Semelhante ao Cobertura, o EMMA exibe o código da classe testada e especificamente se a linha está sendo abrangida ou não pelos testes. O EMMA possibilita gerar relatórios em HTML, XML ou arquivo txt. Finalidades
  • 4. Exemplos Página inicial do relatório. Aqui é possível visualizar um resumo do projeto(total de linhas, todos os pacotes e etc).
  • 5. Na visão de umpacote é exibido todas as classes pertencentes aquele pacote e as porcentagens de cobertura(class, %; method, %; etc). Exemplos (cont.)
  • 6. Visualização de uma classe. Aqui é possível analisar a cobertura dos métodos da classe. Exemplos (cont.)
  • 7. Ainda na visualização da classe é possível analisar quais linhas especificamente estão sendo cobertas pelos testes. Exemplos (cont.)
  • 8. Para integrar o EMMA com o Maven é necessário configurar o “pom.xml” do projeto onde está localizado as classes de testes unitários ou do projeto pai. Por default o relatório do EMMA é gerado na fase de “test” do ciclo de vida de construção “site” do Maven(Build Lifecycle). (mvnsite-deploy). Automatizando o teste do EMMA com Maven
  • 9. Entretanto, vale lembrar que antes de executar o EMMA é invocado a fase de “test”. Isso garante que o “instrument”, ou seja, as classes compiladas que servirão de base para teste sejam geradas antes do relatório propriamente dito. É possível gerar o relatório do EMMA pelo comando:mvnemma:emma. Automatizando o teste do EMMA com Maven (cont.)
  • 10.
  • 11. No exemplo a seguir o EMMA informa que na fase “process-classes" será executado seu “goal” “instrument”.Configuração do pom.xml
  • 12. <build> <plugins> <!-- Emma --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>emma-maven-plugin</artifactId> <inherited>true</inherited> <executions> <execution> <phase>process-classes</phase> <goals> <goal>instrument</goal> </goals> </execution> </executions> </plugin> </plugins> </build> Configuração do pom.xml (cont.)
  • 13.
  • 14. <build> <plugins> <!-- Surefire --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.5</version> <inherited>true</inherited> <configuration> <excludes> <exclude>br/com/senac/turma5/dao/**/*DAO.class</exclude> <exclude>br/com/senac/turma5/exceptions/*.class</exclude> <exclude>br/com/senac/turma5/springmvc/*.class</exclude> <exclude>br/com/senac/turma5/util/*.class</exclude </excludes> Configuração do pom.xml (cont.)
  • 15. <forkMode>once</forkMode> <reportFormat>xml</reportFormat> </configuration> </plugin> </plugins> </build> Configuração do pom.xml (cont.)
  • 16.
  • 17. <reporting> <plugins> <!-- EMMA --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>emma-maven-plugin</artifactId> <inherited>true</inherited> </plugin> </plugins> </reporting> Configuração do pom.xml (cont.)