每次测试运行时编写带有唯一数据的 Cucumber 特征文件
Posted
技术标签:
【中文标题】每次测试运行时编写带有唯一数据的 Cucumber 特征文件【英文标题】:Writing Cucumber feature file with passing unique data every time test runs 【发布时间】:2018-03-11 13:56:11 【问题描述】:我想编写一个功能文件,每次运行测试时都会传递唯一的数据。
Feature : - Create Facebook account
Scenario Outline: Create new account
Given I go to facebook.com
And I enter "First_Name>Last_name>DOB>Password>ConfirmPassword>Email>ConfirmEmail>"
When I click on Create account
Then I should get welcome to facebook message
Examples:
| First_Name | Last_name | DOB | Password | ConfirmPassword | Email | ConfirmEmail |
| Gary | English | 11/01/1989 | test123 | test123 | gar@mail.com | gar@mail.com |
| Barry | Smith | 01/11/1982 | test123 | test123 | bar@mail.com | bar@mail.com |
我的问题是: 当我运行上述场景时,将创建 2 个 Facebook 帐户。当我每天早上提交代码并运行测试时,除非我每次都更改电子邮件以使它们独一无二,否则它们将失败。因为任何系统都会检查提供的电子邮件地址是否已经存在。
如果我不必每次都更改我的创建帐户功能文件数据,我该如何解决这个问题。
我希望我们当中有人遇到过这样的问题。
注意:我无法打开和关闭 ,因为这些括号之间的文本不可见,因此我只保留了 1 个括号
【问题讨论】:
【参考方案1】:那就不要放在功能文件里了。在 step 方法中构建一个随机化器。您还应该更改功能文件以反映这一点。
And I enter "<First_Name>, <Last_name>, <DOB>, <Password>, <ConfirmPassword>, <Email>, <ConfirmEmail>"
And uses a random email
或者,如果您不想构建单独的条件,则使用关键字来表示值应该是随机的(我的首选方法):
|Barry|Smith|01/11/1982|test123|test123|[random]|[random]|
因此,当传递给注册方法时,如果该值未验证为合法的电子邮件地址(您正在进行验证,对吗?),请检查 [random] 关键字。如果存在,则构建一个随机有效的电子邮件。
【讨论】:
以上是关于每次测试运行时编写带有唯一数据的 Cucumber 特征文件的主要内容,如果未能解决你的问题,请参考以下文章
测试使用带有 Cucumber 的设计令牌可验证模块的 JSON API
当使用带有 REST 的 Cucumber 时,我不断收到未决异常
Maven Surefire 插件没有重新运行失败的 Cucumber 测试