| Ce site met a disposition le build journalier de la traduction francaise du Maven: The Definitive Guide Consultez : | ![]() |
Maintenant que votre projet possède ses tests unitaires, exécutons-les. Vous n'avez rien à faire de spécial pour exécuter un test unitaire ; la phase test est une étape
standard du cycle de vie de Maven. Vous lancez les tests avec Maven à chaque fois que vous exécutez mvn
package ou mvn install. Si vous voulez lancer toutes les phases du cycle de vie jusqu'à
la phase test incluse, exécutez mvn test :
$ mvn test
...
[INFO] [surefire:test]
[INFO] Surefire report directory: ~/examples/ch-custom/simple-weather/target/\
surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.sonatype.mavenbook.weather.yahoo.WeatherFormatterTest
0 INFO YahooParser - Creating XML Reader
177 INFO YahooParser - Parsing XML Response
239 INFO WeatherFormatter - Formatting Weather Data
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.547 sec
Running org.sonatype.mavenbook.weather.yahoo.YahooParserTest
475 INFO YahooParser - Creating XML Reader
483 INFO YahooParser - Parsing XML Response
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.018 sec
Results :
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
Exécuter mvn test depuis la ligne de commande, a demandé à Maven d'exécuter toutes les
phases du cycle de vie jusqu’à la phase test. Le plugin Maven Surefire possède un goal
test rattaché à la phase test. Ce goal test exécute tous
les tests unitaires du projet qu'il peut trouver dans src/test/java avec un nom de fichier de
la forme **/Test*.java, **/*Test.java ou
**/*TestCase.java. Pour ce projet, vous pouvez vous rendre compte que le goal
test du plugin Surefire a exécuté WeatherFormatterTest et
YahooParserTest. Quand le plugin Maven Surefire lance les tests JUnit, il produit des
rapports XML et texte dans le répertoire
${basedir}/target/surefire-reports. Si vos tests sont en échec, il vous faudra regarder dans
ce répertoire pour trouver les messages d'erreurs et les traces de vos tests unitaires.
Souvent vous vous retrouverez à développer sur un système dont certains tests unitaires sont en échec. Si
vous pratiquez le développement piloté par les tests (Test Driven Development ou TDD), vous pourriez utiliser ces échecs
comme indicateur du reste à faire sur votre projet. Si vous avez des tests en échec et que vous souhaitez
construire votre projet tout de même, il va vous falloir indiquer à Maven de ne pas tenir compte des tests en
échec. Quand Maven rencontre un échec lors du build, son comportement par défaut est d'arrêter le build. Pour
continuer à construire un projet même lorsque le plugin Surefire rencontre des tests en échec, vous allez devoir mettre la propriété de configuration de Surefire
testFailureIgnore à true.
Exemple 4.17. Ignorer les tests unitaires en échec
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
La documentation du plugin (http://maven.apache.org/plugins/maven-surefire-plugin/test-mojo.html) indique que ce paramètre correspond à une expression :
Exemple 4.18. Expressions pour un paramètre de plugin
testFailureIgnore Set this to true to ignore a failure during \
testing. Its use is NOT RECOMMENDED, but quite \
convenient on occasion.
* Type: boolean
* Required: No
* Expression: ${maven.test.failure.ignore}
Cette expression peut être configurée depuis la ligne de commande en utilisant le paramètre
-D :
$ mvn test -Dmaven.test.failure.ignore=true