Ce site met a disposition le build journalier de la traduction francaise du Maven: The Definitive Guide
Consultez :
  • Les documents de reference sur le projet original
  • Les sources de la traduction fr sur GitHub
  • maven


    4.12. Exécuter les test unitaires

    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.

    4.12.1. Ignorer les tests en échec

    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