En utilisant la ligne de code ci-dessous, tous les scénarios mentionnés dans login.feature peuvent être exécutés.
@CucumberOptions(features= "src/main/resources/publish/login.feature", format = {"pretty"} )
Si je dois exécuter plusieurs fichiers de fonctionnalités, comment définir? En supposant que si je définis comme ci-dessous, les fonctionnalités mentionnées dans le dossier de publication seront exécutées.
@CucumberOptions(features= "src/main/resources/publish", format = {"pretty"} )
Si je dois exécuter plusieurs fonctionnalités et scénarios à l'intérieur, comment définir? Dois-je créer plusieurs classes cucumberRunner ou je peux définir dans un fichier de classe.
Vous pouvez le faire en définissant la valeur des balises dans l'option concombre (étant donné que vous avez déjà regroupé ces scénarios dans des fichiers de fonctionnalités)
Par exemple: features = "src/test/resources/FeatureFiles", tags = "@ feature1scenariogroup1, @ feature2cenariogroup2"
Définition des balises dans le fichier de fonction:
Feature: My Feature File
@smoke
Scenario: Login
Given I open "FireFox" browser
When I navigate to Sectionone "Home" page
And i do something
Then I Validate Something
@regression
Scenario: Compose Email
Given I open "FireFox" browser
When I Do An Action
@OnlyOneTime
Scenario:Send Email
....
Vous pouvez utiliser un fichier de fonctionnalité sélective ou des scénarios sélectifs dans la fonctionnalité à l'aide de balises. Veuillez essayer avec cette solution.
Considérons le nombre de fichiers d'entités que vous possédez et vous devez exécuter uniquement une fonction sélective à partir de cela. Nommez ensuite chaque fichier de fonction avec le nom @tag.
ex.: sous ce dossier, si vous avez un nombre n de fonctionnalités - "src/main/resources/publish"
1er nom du fichier de fonction:
Login.feature
// Dans le fichier commence par le nom de la balise de fonction
@Login
Feature: To Login to Email
//Then feature name followed with scenario tag name
@User
//Scenario1:
Scenario Outline: Navigate and logon to gmail application
Given User launches gmail application
When User updates emailID <emailID>
And User updates pwd <pwd>
Then User clicks on Login Button
Examples:
| emailID | pwd |
| [email protected]| 123 |
Nom du deuxième fichier de fonctions:
CreateEmail.feature
@Createmail
Feature: Create email
Scenario: Blah blah blah...
//Write all Given when And Then
Nom du troisième fichier de fonctions:
SendEmail.feature
@Sendemail
Feature: Send email
Scenario: Blah blah blah...
//Write all Given when And Then
Donc, à partir des fichiers de test ci-dessus. Supposons que vous souhaitiez tester les 1ère et 3ème fonctionnalités seules, vous pouvez ensuite utiliser le code comme ci-dessous:
par exemple: # Ceci permet d'exécuter des fichiers de fonctionnalités spécifiques, qui sont 1 et 3. De même, vous pouvez également utiliser les balises pour le scénario si vous avez n scénarios de nombre dans le même fichier de fonctionnalités.
@CucumberOptions(features= "src/main/resources/publish", tags="@Login, @Sendemail", format = {"pretty"} )
Modifié mon code comme pour exécuter toutes les fonctionnalités activées, les scénarios. fonctionnalités est le point à noter ici pour que la classe de coureur considère les fonctionnalités
@RunWith(Cucumber.class)
@CucumberOptions(
features = {"classpath:features"},
plugin = {"html:target/site/cucumber-pretty","json:target/cucumber.json"},
tags = {"@currentTest"},
glue={"helpers","stepDefinitions"},
// dryRun = true,
monochrome = true
)
public class RunCukesTest{
}
Vous pouvez simplement écrire tags = {"@ fileName1, @ fileName2"}
Nous pouvons ajouter plusieurs fichiers en utilisant @ File1, @ File2, ..
@RunWith(Cucumber.class)
@CucumberOptions(
features = {"src/test/Java/Features"},
tags= {"@FirstTimeLaunch, @SignUpPage"},
glue= {"testCode"},
plugin = { "pretty", "html:target/htmlreports" }
)
Ici, tous les fichiers * .feature dans votre dossier Features (Package) seront exécutés dans l'ordre alphabétique du nom de fichier, lorsque vous exécutez en tant que test Junit (classe runner)