如何使用cucumber runner类运行多个功能文件?

时间:2017-04-19 10:41:52

标签: selenium cucumber

使用以下代码行,可以执行login.feature中提到的所有方案。

@CucumberOptions(features= "src/main/resources/publish/login.feature", format = {"pretty"} )

如果我必须执行多个功能文件,我该如何定义?假设我定义如下,将执行发布文件夹中提到的功能。

@CucumberOptions(features= "src/main/resources/publish", format = {"pretty"} )

如果我必须在其中运行多个功能和方案,我该如何定义?我是否必须创建多个 cucumberRunner 类,或者我可以在一个类文件中定义。

5 个答案:

答案 0 :(得分:1)

您可以使用标签在功能中使用选择性功能文件或选择性方案。请尝试使用此解决方案。

让我们考虑您有多个功能文件,并且您只需要运行选择性功能。然后使用@tag name命名每个要素文件。

例如:在此文件夹下,如果您有多个功能 - " src / main / resources / publish"

第一个功能文件名:

Login.feature

//文件内部以功能标签名称

开头
@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 |
  | a@gmail.com| 123 | 

第二个功能文件名:

CreateEmail.feature

 @Createmail
 Feature: Create email

 Scenario: Blah blah blah...

 //Write all Given when And Then

第3个特征文件名:

SendEmail.feature

 @Sendemail
 Feature: Send email

 Scenario: Blah blah blah...

 //Write all Given when And Then

所以从上面的测试文件中。让我们考虑你想单独测试第一和第三个功能,然后你可以使用如下代码:

例如:#这是运行特定的功能文件,即1和3.同样,如果在同一个功能文件中有n个场景,也可以使用标签。

 @CucumberOptions(features= "src/main/resources/publish", tags="@Login, @Sendemail",  format = {"pretty"} )

答案 1 :(得分:1)

修改我的代码,比如运行所有已启用的功能,方案。功能是这里需要注意的,以便跑步者类考虑功能

@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{

}

答案 2 :(得分:0)

您可以通过在黄瓜选项中定义标签值来实现(考虑到您已经将这些方案分组在要素文件中)

例如:                   特征= “SRC /测试/资源/ FeatureFiles”,标签= “@ feature1scenariogroup1,@ feature2cenariogroup2”

在功能文件内定义标签:

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

答案 3 :(得分:0)

@RunWith(Cucumber.class)

@CucumberOptions(
features = {"src/test/java/Features"},
tags= {"@FirstTimeLaunch, @SignUpPage"},
glue= {"testCode"},
plugin = { "pretty", "html:target/htmlreports" }
)

当您作为Junit测试执行时(转轮类),此处功能文件夹(包)中的所有* .feature文件将按照文件名的字母顺序执行

答案 4 :(得分:0)

您只需编写标签= {“ @ fileName1,@ fileName2”}

我们可以使用@ File1,@ File2等添加多个文件。