Tester dans Maven

Un autre point important dans le travail de Maven est la phase de test. Il sera exécuté si vous exécutez test , package , verify ou toute autre phase qui vient après eux.

Par défaut, Maven exécutera tous les tests qui se trouvent dans le dossier src/test/java/ . Pour distinguer les tests à exécuter des autres fichiers java, une convention de nommage a été adoptée. Les tests sont des classes Java dont les noms commencent par "Test" et se terminent par "Test" ou "TestCase" .

Schéma général des noms de test :

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

Ces tests doivent être écrits sur la base du framework de test Junit ou TestNG. Ce sont des frameworks très sympas, nous en reparlerons certainement un peu plus tard.

Les résultats des tests sous forme de rapports aux formats .txt et .xml sont enregistrés dans le répertoire ${basedir}/target/surefire-reports.

Configuration des tests

Il existe généralement de nombreuses options pour exécuter des tests, c'est pourquoi les développeurs Maven ont créé un plugin spécial, dans les paramètres pour lequel vous pouvez définir toutes les informations détaillées sur les tests. Le plugin s'appelle Maven Surefire Plugin et est disponible sur .

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

Dans l'exemple, nous avons indiqué au plugin qu'il doit exécuter une seule classe de test, Sample.java.

Comment éliminer rapidement les tests cassés

Pour exécuter le projet à des fins de test, vous devez exécuter la commande mvn test. Mais le plus souvent, il est nécessaire d'exclure certains tests des tests. Par exemple, ils peuvent être cassés, prendre trop de temps à fonctionner ou pour toute autre raison.

Tout d'abord, vous pouvez simplement dire à Maven de sauter les tests lors de la phase de construction. Exemple:

mvn clean package -Dmaven.test.skip=true

Deuxièmement, dans la configuration du plugin, vous pouvez désactiver l'exécution des tests :


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

Et troisièmement, les tests peuvent être exclus à l'aide de la balise <exclude> . Exemple:


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