Comment exécuter des fichiers de caractéristiques de concombre uniques via une invite de commande et via Jenkins à l’aide de Maven?

Cucumber / Maven étant un peu nouveau pour moi, demandez de l’aide pour exécuter des scénarios de test. J’ai développé une suite d’automatisation dans Eclipse utilisant Cucumber et Selenium. Pour exécuter des fichiers de fonctionnalités / classe de coureur Junit spécifiques, je clique avec le bouton droit de la souris sur les fichiers dans Eclipse et je l’exécute.

Mais comment puis-je l’exécuter via l’invite de commande ou Jenkins en donnant des commandes spécifiques pour exécuter 2 à 3 fichiers de fonctions (ou) 2 à 3 classes de coureurs Junit sur 50 fichiers de fonctions ou classes JUnit?

Vous trouverez ci-dessous l’explorateur de paquet de ma structure dans Eclipse.

entrez la description de l'image ici

Ci-dessous le POM.xml

 4.0.0 com.perspecsys salesforce 0.0.1-SNAPSHOT jar salesforce http://maven.apache.org  UTF-8    junit junit 4.11 test   info.cukes cucumber-java 1.1.2 test   info.cukes cucumber-picocontainer 1.1.2 test   info.cukes cucumber-junit 1.1.2 test   org.seleniumhq.selenium selenium-java 2.48.2    

Vous pouvez exécuter un seul fichier de fonctionnalité à l’aide de cucumber.options qui remplacera toutes les options de l’annotation @CucumberOptions :

 mvn test -Dcucumber.options="src/test/features/com/perspecsys/salesforce/featurefiles/Account.feature" 

Si vous le vouliez codé en dur, vous pourriez faire quelque chose comme:

 import cucumber.api.CucumberOptions; import cucumber.api.junit.Cucumber; import org.junit.runner.RunWith; @RunWith(Cucumber.class) @CucumberOptions( features={"src/test/resources/features/belly.feature"} ,glue = "steps" //whatever the name of your steps package is ) public class RunCukesTest { } 

Étant donné que vous utilisez Maven et que vous avez déjà une classe de coureur distincte par fonctionnalité, vous pouvez simplement utiliser le plug-in Failsafe ou le plug-in Surefire pour passer un paramètre à partir de la ligne de commande comme ceci, et sélectionner le programme à exécuter.

Version Failsafe:

 -Dit.test=Account*Test,Login*Test 

Version Surefire:

 -Dtest=Account*Test,Login*Test 

Notez que vous pouvez utiliser des caractères génériques, transmettre une liste de tests séparés par des virgules, référencer l’emplacement complet et filtrer par package.

 -Dit.test=com.perpecsys.salesforce.*Test 

Pour cela, j’utiliserais normalement le plug-in Failsafe, car le Cucumber teste plutôt des tests d’intégration (vraiment de bout en bout), et c’est à quoi ce plugin est destiné, alors que le plug-in Surefire est conçu pour exécuter des tests unitaires.

Plus d’informations sur les deux plugins:

http://maven.apache.org/surefire/maven-failsafe-plugin/examples/single-test.html

http://maven.apache.org/surefire/maven-surefire-plugin/examples/single-test.html

Depuis Jenkins, c’est exactement la même chose, utilisez simplement le plugin Maven Project pour créer un nouveau projet Maven. Dans la section Build, sous le champ Goal and options , spécifiez la commande maven comme suit:

 clean verify -Dit.test=Account*Test 

https://wiki.jenkins-ci.org/display/JENKINS/Maven+Project+Plugin

Vous pouvez également append l’étape Invoquer les cibles Maven de niveau supérieur à la construction si vous n’utilisez pas le plug-in Maven Project, puis append les options correspondantes.

J’espère que cela t’aides.

Vous pouvez exécuter un seul fichier de fonctionnalité à l’aide de cucumber.options.

 mvn test -Dcucumber.options="--tags @TestTag"