emma - ferramenta para teste de cobertura

17
Ferramenta para teste de cobertura de código

Upload: wallaceroque

Post on 01-Jul-2015

2.271 views

Category:

Documents


5 download

DESCRIPTION

Apresentação sobre a ferramenta de teste de cobertura: EMMA e sua integração com o Maven.

TRANSCRIPT

Page 1: EMMA - Ferramenta para teste de cobertura

Ferramenta para teste de cobertura de código

Page 2: EMMA - Ferramenta para teste de cobertura

EMMA é uma ferramenta para calcular a porcentagem de código acessado pelos testes.

Page 3: EMMA - Ferramenta para teste de cobertura

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.

Page 4: EMMA - Ferramenta para teste de cobertura

Página inicial do relatório. Aqui é possível visualizar um resumo do projeto(total de linhas, todos os pacotes e etc).

Page 5: EMMA - Ferramenta para teste de cobertura

Na visão de um pacote é exibido todas as classes pertencentes aquele pacote e as porcentagens de cobertura(class, %; method, %; etc).

Page 6: EMMA - Ferramenta para teste de cobertura

Visualização de uma classe. Aqui é possível analisar a cobertura dos métodos da classe.

Page 7: EMMA - Ferramenta para teste de cobertura

Ainda na visualização da classe é possível analisar quais linhas especificamente estão sendo cobertas pelos testes.

Page 8: EMMA - Ferramenta para teste de cobertura

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). (mvn site-deploy).

Page 9: EMMA - Ferramenta para teste de cobertura

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: mvn emma:emma.

Page 10: EMMA - Ferramenta para teste de cobertura

A configuração do EMMA na tag “build” permite, assim como Cobertura, redefinir as fases do ciclo de vida de construção do Maven acrescentando “goals” do EMMA.

No exemplo a seguir o EMMA informa que na fase “process-classes" será executado seu “goal” “instrument”.

Page 11: EMMA - Ferramenta para teste de cobertura

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

Page 12: EMMA - Ferramenta para teste de cobertura

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.

Exemplo:

Page 13: EMMA - Ferramenta para teste de cobertura

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

Page 14: EMMA - Ferramenta para teste de cobertura

<forkMode>once</forkMode>

<reportFormat>xml</reportFormat>

</configuration>

</plugin>

</plugins>

</build>

Page 15: EMMA - Ferramenta para teste de cobertura

O relatório HTML gerado pelo plugindo 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

Exemplo:

Page 16: EMMA - Ferramenta para teste de cobertura

<reporting>

<plugins>

<!-- EMMA -->

<plugin>

<groupId>org.codehaus.mojo</groupId>

<artifactId>emma-maven-plugin</artifactId>

<inherited>true</inherited>

</plugin>

</plugins>

</reporting>

Page 17: EMMA - Ferramenta para teste de cobertura