Testando no Maven

Outro ponto importante no trabalho do Maven é a fase de testes. Ele será executado se você executar test , package , Verify ou qualquer outra fase que vier depois deles.

Por padrão, o Maven executará todos os testes que estiverem na pasta src/test/java/ . Para distinguir os testes a serem executados de outros arquivos java, uma convenção de nomenclatura foi adotada. Os testes são classes Java cujos nomes começam com "Test" e terminam com "Test" ou "TestCase" .

Padrão geral de nomes de teste:

  • **/Test*.java
  • **/*Test.java
  • **/*TestCase.java

Esses testes devem ser escritos com base na estrutura de teste Junit ou TestNG. São frameworks muito legais, com certeza falaremos sobre eles um pouco mais tarde.

Os resultados do teste na forma de relatórios nos formatos .txt e .xml são salvos no diretório ${basedir}/target/surefire-reports.

Configuração de teste

Geralmente, existem muitas opções para executar testes, então os desenvolvedores do Maven criaram um plug-in especial, nos parâmetros para os quais você pode definir todas as informações detalhadas sobre o teste. O plug-in é chamado Maven Surefire Plugin e está disponível em .

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
    	<version>2.12.4</version>
    	<configuration>
        	<includes>
                <include>Sample.java</include>
        	</includes>
    	</configuration>
	</plugin>
</plugins>

No exemplo, dissemos ao plug-in que ele precisa executar uma única classe de teste, Sample.java.

Como eliminar rapidamente testes quebrados

Para executar o projeto para teste, você precisa executar o comando mvn test. Porém, mais frequentemente, é necessário excluir alguns testes do teste. Por exemplo, eles podem estar quebrados, demorar muito para rodar ou por qualquer outro motivo.

Primeiro, você pode simplesmente dizer ao Maven para pular os testes ao fazer a fase de compilação. Exemplo:

mvn clean package -Dmaven.test.skip=true

Em segundo lugar, na configuração do plug-in, você pode desativar a execução de testes:


<configuration>
    <skipTests>true</skipTests>
</configuration>

E em terceiro lugar, os testes podem ser excluídos usando a tag <exclude> . Exemplo:


<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
    	<version>2.12.4</version>
    	<configuration>
        	<excludes>
           	<exclude>**/TestFirst.java</exclude>
	           <exclude>**/TestSecond.java</exclude>
    	</excludes>
    	</configuration>
    </plugin>
</plugins>