Você pode dividi-los facilmente usando as categorias JUnit e Maven.
Isso é mostrado muito, muito brevemente abaixo, dividindo os testes de unidade e integração.
Definir uma interface de marcador
A primeira etapa no agrupamento de um teste usando categorias é criar uma interface de marcador.
Essa interface será usada para marcar todos os testes que você deseja executar como testes de integração.
public interface IntegrationTest {}
Marque suas aulas de teste
Adicione a anotação da categoria ao topo da sua classe de teste. Leva o nome da sua nova interface.
import org.junit.experimental.categories.Category;
@Category(IntegrationTest.class)
public class ExampleIntegrationTest{
@Test
public void longRunningServiceTest() throws Exception {
}
}
Configurar testes de unidade Maven
A beleza desta solução é que nada realmente muda para o lado do teste de unidade.
Simplesmente adicionamos algumas configurações ao plug-in maven surefire para ignorar qualquer teste de integração.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.11</version>
<configuration>
<includes>
<include>**/*.class</include>
</includes>
<excludedGroups>
com.test.annotation.type.IntegrationTest
</excludedGroups>
</configuration>
</plugin>
Quando você faz um mvn clean test
, apenas seus testes de unidade não marcados serão executados.
Configurar testes de integração do Maven
Novamente, a configuração para isso é muito simples.
Usamos o plug-in padrão à prova de falhas e o configuramos para executar apenas os testes de integração.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<includes>
<include>**/*.class</include>
</includes>
<groups>
com.test.annotation.type.IntegrationTest
</groups>
</configuration>
</plugin>
A configuração usa uma meta de execução padrão para executar o plug-in à prova de falhas durante a fase de teste de integração da compilação.
Agora você pode fazer um mvn clean install
.
Desta vez, assim como os testes de unidade em execução, os testes de integração são executados durante a fase de teste de integração.