如何绕过黄瓜特征文件中的重复步骤执行?

时间:2016-04-29 17:36:51

标签: cucumber cucumber-jvm cucumberjs feature-file

在场景概述中,如果存在2个或更多场景,则将针对另外两个场景执行功能的所有步骤。

但我只需要执行一次步骤即登录步骤。

例如:

Scenario Outline: Acceptance page has <Application> logo appearing on top
    Given I am signing up in <Application>         #I want to run this step only once
    And I navigate to "Dashboard" page     # I want to run this step only once
    Then I should see "header logo" exist
    And I should see "footer" exist
    And I should expect the following elements to be visible
        | element                    |
        | Legal                      |
        | Privacy                    |
        | Security                   |
        | Cookies                    |

    Examples:
        | Application | 
        | Gmail       | 

在上面的功能文件中,我只想登录应用程序一次并验证其余步骤。

目前,对于每个验证步骤,Logon事情都会一次又一次地发生。

请建议我如何只运行登录步骤一次,并且可以检查页面上的多个项目。

2 个答案:

答案 0 :(得分:0)

提取公共步骤并将它们放入Background语句中。背景在每个场景之前运行,但在任何前挂钩之后运行。

答案 1 :(得分:0)

首先,@ mikejramsey56正确地将常规步骤从场景移动到后台。

其次,您可以像Mike建议的那样在前钩子中登录一次网站,但如果浏览器因任何原因退出,您就不会在一个好地方。测试应该是独立的。

第三,Cucumber是展示你所需要的复杂程度的好地方。您可以将步骤合并为一个步骤。如果这样做,您应该将代码拉出步骤并将其放入单独的方法中,然后从该步骤调用该方法。您可以使用一个步骤来调用多个方法,例如验证公共页面组件。

第四,我希望​​你练习,因为确保一个标题&amp;脚存在不是使用行为。用户想要做东西并看到东西,可能在顶部的div或框架中,但他们从不想看到div或框架。