Les phases suivantes sont spécifiquement dédiées au traitement des tests dans maven:
generate-test-sources | Génère le code source des tests |
process-test-sources | Pré-traitement des sourecs de test avant compilation |
generate-test-resources | Génère les les ressources pour le test |
process-test-resources | Copie et traite les ressources pour le test |
test-compile | Compile les sources de test |
test | Exécute les tests unitaires |
package | Empaquette le code compilé (et les ressources) pour distribution |
pre-integration-test | Exécute des actions nécessaires à laréalisation des tests d'intégration (eg. instancier l'environnement d'exécution) |
integration-test | Traite et déploie le paquet si nécessaire pour exécution des tests d'intégration |
post-integration-test | Exécute les actions requises après la findes tests d'intégration (eg. nettoyage) |
Les phases de tests d'intégration ne sont liées par défaut à aucun plugin. Voir Cycle de vie.
<testSourceDirectory>${basedir}/src/test/java</testSourceDirectory>: répertoire contenant les sources de test.
<testOutputDirectory>${basedir}/target/test-classes</testOutputDirectory>: répertoire contenant les classe de tests et les ressources après compilation.
http://maven.apache.org/plugins/maven-surefire-plugin/test-mojo.html
testXXX trouvées dans les classes nommées XXXTest du répertoireddes sources de test (voir <build><testSourceDirectory/>, le résultat de leur compilation estdéposé dans <build><testOutputDirectory/>http://mojo.codehaus.org/build-helper-maven-plugin/
Permet d'attacher des répertoires de sources supplémentaires.
Note: pour attacher des ressources supplémentaires:
testResources et ses tags imbriqués testResourcepour ajouter des resources localestarget/test-classeshttp://mojo.codehaus.org/fit-maven-plugin/
Permet d'exécuter des tests d'intégration avec le moteur FIT.
http://maven.apache.org/plugins/maven-verifier-plugin/
Permet de vérifier l'existence de fichiers durant la phase de test et le contenu de ces fichiers:
<verifications> <files> <file> <location>src/main/resources/file1.txt</location> </file> <file> <location>src/main/resources/file2.txt</location> <contains>aaaabbbb</contains> </file> <file> <location>src/main/resources/file3.txt</location> <exists>false</exists> </file> </files> </verifications>
S'exécute durant la phase integration-test
http://svn.apache.org/viewvc/maven/shared/trunk/maven-plugin-testing-harness/
Support au test unitaire de plugins:
http://maven.apache.org/developers/committer-testing-plugins.html Page d'aide sur l'écriture de tests de plugin:
maven-it-plugin: lié directement auxphases pre/post-integration, ajout d'une invocation àmaven-install-plugin:install-file pour pouvoir tester un snapshot,utilise maven-verifier ?maven-plugin-test-plugin +maven-embedder (stage/unstage le plugin dans le référentiel local)La solution 2 est trés dépendante de fonctionnalités instables de maven (version 2.1-SNAPSHOT).
http://wiki.rodcoffin.com/index.php?title=MavenIntegrationTesting
http://docs.codehaus.org/display/MAVENUSER/How+to+re-use+test+code+between+projects
http://docs.codehaus.org/display/MAVENUSER/Maven+and+Integration+Testing
http://docs.codehaus.org/display/MAVENUSER/Maven2+And+TestNG.Example+pom.xml
http://docs.codehaus.org/display/MAVEN/Testing+Strategies
http://docs.codehaus.org/display/MAVENUSER/How+to+use+the+JBoss+Embedded+EJB3+Container+for+Unit+testing