Vous pouvez les diviser très facilement en utilisant les catégories JUnit et Maven.
Ceci est montré très, très brièvement ci-dessous par des tests unitaires et d'intégration.
Définir une interface de marqueur
La première étape du regroupement d'un test à l'aide de catégories consiste à créer une interface de marqueurs.
Cette interface sera utilisée pour marquer tous les tests que vous souhaitez exécuter comme tests d'intégration.
public interface IntegrationTest {}
Marquez vos classes de test
Ajoutez l'annotation de catégorie en haut de votre classe de test. Il prend le nom de votre nouvelle interface.
import org.junit.experimental.categories.Category;
@Category(IntegrationTest.class)
public class ExampleIntegrationTest{
@Test
public void longRunningServiceTest() throws Exception {
}
}
Configurer les tests unitaires Maven
La beauté de cette solution est que rien ne change vraiment pour le côté test unitaire des choses.
Nous ajoutons simplement une configuration au plugin maven surefire pour qu'il ignore les tests d'intégration.
<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>
Lorsque vous effectuez un mvn clean test
, seuls vos tests unitaires non marqués seront exécutés.
Configurer les tests d'intégration Maven
Là encore, la configuration est très simple.
Nous utilisons le plugin de sécurité standard et le configurons pour exécuter uniquement les tests d'intégration.
<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>
La configuration utilise un objectif d'exécution standard pour exécuter le plug-in de sécurité pendant la phase de test d'intégration de la construction.
Vous pouvez maintenant faire un mvn clean install
.
Cette fois-ci, ainsi que les tests unitaires en cours d'exécution, les tests d'intégration sont exécutés pendant la phase de test d'intégration.