Maven: JMockit x maven-surefire-plugin

Hoje ao tentar adicionar o JMockit em minha aplicação passei por um problema bem esquisito!

Ao rodar minha classe pelo JUnit, todos os testes passam ok… já ao invocar o maven2 para gerar o package ocorrem erros!

Work around!

  • É preciso configurar o plugin maven-surefire-plugin para registrar o jar do jmockit como javaagent

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<argLine>-javaagent:${project.build.directory}/jmockit-${jmockit.version}.jar</argLine>
</configuration>
</plugin>

  • Feito isso é preciso fazer com que este jar esteja no local procurado! Para isso iremos adicionar um plugin que copia os resource de testes!

<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>generate-test-resources</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>mockit</groupId>
<artifactId>jmockit</artifactId>
<version>${jmockit.version}</version>
<type>jar</type>
<overWrite>true</overWrite>
<outputDirectory>${project.build.directory}</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>

Pronto! Agora basta testar sua aplicação!

Obs.: É possivel evitar o segundo passo utilizando o caminho do repositório local para o Jar, mas em minha versão(2.0.10) do maven não estava funcionando…

Anúncios

Sobre Robson Ximenes
Baiano, torcedor o Bahia. Bacharel em Ciências da computação, jogador de futebol e tênis nas horas vagas.

One Response to Maven: JMockit x maven-surefire-plugin

  1. Rogério says:

    Tem uma solução mais fácil (assumindo que se use o JDK 1.6 para rodar os testes):
    na lista de “dependencies” no pom.xml, mova a do jmockit para antes da do junit, de modo que jmockit.jar preceda junit.jar no classpath. Assim, o JMockit será inicializado antes do primeiro teste iniciar.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: