J'ai intégré il y a quelques semaines easyb/Selenium dans un projet Java/Apache Maven pour réaliser des tests d'acceptation. Ayant rencontré quelques écueils, je vous fais profiter des solutions que j'ai pu trouver :)
Qu'est-ce qu'Easyb ?
Easyb est un framework de BDD : Behavior Driven Development. Pour décrire ça simplement, imaginez faire du Test Driven Development en vous focalisant sur la vérification des comportements attendus de votre logiciel, en décrivant les cas de test dans un langage naturel, compréhensible par tous (et notamment les non-développeurs).
Easyb peut donc servir à faire du test unitaire, mais il est également tout indiqué pour les tests d'acceptation (vérification que les exigences représentées par les spécifications du logiciel sont respectées), par exemple dans le cadre de votre sprint Agile, pour vérifier que la user story est finie.
Easyb permet d'écrire des tests facilement et rapidement, grâce à son langage dédié (DSL : Domain-Specific Language) qui autorise des constructions comme shouldBeEqual, shouldBeAn, ensureThrows, isAString, contains, etc. Mais pour moi, ce qui vous fera peut-être l'adopter dans le cadre des tests d'acceptation, c'est sa capacité à être compréhensible pour les développeurs comme pour les chefs de produit ; les stories sont rédigées avec la construction "given... when... then...", les rapports générés sont donc compréhensibles par tous, et le test est de lui-même entièrement documenté. Easyb vous incite à décrire ce que fait votre test précisément.
Intégration
Première étape, intégrer easyb via Maven
Il suffit pour cela d'ajouter le plugin maven-easyb-plugin :
<plugin>
<groupId>org.easyb</groupId>
<artifactId>maven-easyb-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
Ensuite, on peut générer les rapports en lançant :
pour lancer tous les tests y compris ceux easyb
pour lancer uniquement les tests easyb
Seconde étape, lancer chaque fichier de test indépendamment dans Eclipse
Il suffit pour cela d'installer le plugin easyb pour Eclipse.
Attention ! Si vous n'avez pas le plugin Groovy installé, installez le plugin Groovy d'abord ! Lors de l'installation du plugin easyb, vous n'êtes pas prévenu... cela m'a valu un Eclipse qui se lance et s'auto-kill en boucle :)
Le plugin easyb s'installe via le site de mise à jour :
Le plugin Groovy s'installe avec le site :
Sélectionner les items :
- Groovy-Eclipse (Required)
- m2e Configurator for Groovy-Eclipse (Optional)
Troisième étape, lancer les tests easyb via JUnit
Pour cela :
Récupérer le jar à cet endroit
Si vous voulez pouvoir l'utiliser avec Maven, installez-le dans votre repo local (ou distant si vous en avez la possibilité)
mvn install:install-file -Dfile=easyb-junit-0.5.3.jar -DgroupId=org.easyb -DartifactId=easyb-junit -Dversion=0.5.3 -DgeneratePom=true -Dpackaging=jar
A cause d'incompatibilités de versions, si vous lancez les tests JUnit avec Maven, vous devrez changer la version du plugin easyb pour la version 0.9.7-1.
Puis vous pourrez ajouter la dépendance au fichier pom.xml :
<dependency>
<groupId>org.easyb</groupId>
<artifactId>easyb-junit</artifactId>
<version>0.5.3</version>
<scope>test</scope>
</dependency>
Ce jar ne contient pas les dépendances (donc il n'est pas vraiment adapté), si vous ne souhaitez pas le regénérer, ajoutez la dépendance à easyb en plus dans votre pom.xml :