Cet article est un extrait du livre sur JUnit
Présentation de l’outil
Maven est également très répandu. C’est un outil de compilation puissant intégrant de nombreux plug-ins d’extension et permettant, entre autres, de gérer les dépendances avec une grande facilité. Maven n’est pas un IDE dans le sens ou il laisse le soin au développeur de choisir son éditeur de code préféré. Les projets Maven sont d’ailleurs faciles à importer dans la plupart des IDE. C’est aujourd’hui un standard pour de nombreux projets. Il dédie à JUnit une phase complète lors du processus de compilation. Ainsi, la compilation rapporte une erreur si les tests ne passent pas. Par ailleurs, il suggère fortement l’organisation des fichiers sources suivant un schéma standard :
src + main | + java | | + com | | | + monprojet | | | | + Classe.java + test | + java | | + com | | | + monprojet | | | | + ClasseTest.java
Guide pas à pas
Maven est un outil en mode console.
Commencez par ouvrir une console de terminal.
Tapez la commande suivante :
mvn archetype:create -DgroupId=exemple -DartifactId=calculatrice -Dversion=1.0
Maven va créer un dossier calculatrice qui contient un fichier pom.xml.
Éditez ce fichier.
Vous remarquez qu’il est au format XML et qu’il contient la section suivante :
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies>
Celle-ci indique que le projet a besoin de JUnit.
Changez simplement le numéro de version pour 4.7.
Ajoutez également la section suivante pour indiquer que nous souhaitons compiler en Java 1.5 :
<build> <finalName>Calculatrice</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> </plugins> </build>
Créez le répertoire src/main/java/math.
Sauvegardez-y le fichier Addition.java.
package math; class Addition { public Long calculer(Long a, Long b) { return a+b; } public Character lireSymbole() { return '-'; } }
Créez le répertoire src/test/java/math.
Sauvegardez-y le fichier AdditionTest.java.
package math; import org.junit.After; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.*; public class AdditionTest { protected Addition op; @Before public void setUp() { op = new Addition(); } @After public void tearDown() { } @Test public void testCalculer() throws Exception { assertEquals(new Long(4), op.calculer(new Long(1), new Long(3))); } @Test public void testLireSymbole() throws Exception { assertEquals((Character)'+', op.lireSymbole()); } }
Enfin, lancez la commande suivante :
# mvn test ------------------------------------------------------- T E S T S ------------------------------------------------------- Running math.AdditionTest Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.03 sec <<< FAILURE! Results : Failed tests: testLireSymbole(math.AdditionTest) Tests run: 2, Failures: 1, Errors: 0, Skipped: 0
Comme vous pouvez le constater, Maven produit un rapport de tests en mode textuel avec la synthèse du nombre de tests et la liste des tests en échec. Par défaut Maven produit les rapports détaillés dans le dossier target/surefire-reports.
Cet article est un extrait du livre sur JUnit
Compilé en 1.5 et utilisé Junit 3.8.1 est dépassé de nos jours !
Salut,
Tu as raison, cela mérite une mise à jour!
Ceci dit, au moment de l’écriture du livre, JUnit 3 était encore utilisé pour le code legacy et pour sa compatibilité avec certaines bibliothèques. En tout état de cause il s’inscrit dans les racines des xUnit et j’en trouve l’étude intéressante même si je reconnais qu’il vaut mieux passer au 4 pour tout nouveau projet!
#++
Merci pour cet article très clair, même quelques années après ça sert toujours !
Concernant la version, à ma connaissance l’idéal est de regarder sur le dépôt Maven* les versions existantes des librairies, les tutos, articles.. ne peuvent pas rester continuellement à jour.
* tapez maven et le nom de l’élément (ex : maven junit => https://mvnrepository.com/artifact/junit/junit)