web-dev-qa-db-fra.com

Comment exécuter plusieurs fichiers de fonctionnalités en utilisant la classe runner de concombre?

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.

4
Nagarjuna Reddy

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
....
0

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"} )
1
SAUMARS

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{

}
1
Nagarjuna Reddy

Vous pouvez simplement écrire tags = {"@ fileName1, @ fileName2"}

Nous pouvons ajouter plusieurs fichiers en utilisant @ File1, @ File2, ..

1
Sourabh Bhavsar
@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)

0
VSB