我有一个功能,其中功能文件中的方案在逻辑上相互关联-因此我的方案无法独立运行。
不错:我创建了一个CustomWorld,让Cucumber自己创建和销毁我的框架实例。
错误:黄瓜会为每种情况创建并销毁该实例。但是我希望为每个功能(而不是场景)创建和销毁它。
这是我的功能文件
Feature: Table Headers Scenario: Check the default headers ### My framework instance created here Given I log in to the application ### A setup When I navigate to the list page Then the table should have the below headers | Default Headers | | First Name | | Last Name | | Age | Scenario: Add columns ### want to reuse the instance created above and destroy automatically after this scenario When I add the below columns to display | Headers | | City | | Country | Then the table should have the below headers | Default Headers | | First Name | | Last Name | | Age | | City | | Country | And I log out from the application ### A teardown
一口气: 当我创建类的实例时,将创建一个硒webdriver实例,打开浏览器并启动URL。
真正的问题:我只想打开浏览器并启动每个功能一次的URL,而不是每种情况下启动URL。
答案 0 :(得分:1)
这违反了BDD和黄瓜的规则。您不应在整个方案中都具有依赖性。我建议您的Given
或Background
进行设置,并且步骤不明确。
Given I am on the list page
|Application|
|###|
Then the table should have the below headers
| Default Headers |
| First Name |
| Last Name |
| Age |
Given I am on the list page
|Application|
|###|
When I add the below columns to display
| Headers |
| City |
| Country |
Then the table should have the below headers
| Default Headers |
| First Name |
| Last Name |
| Age |
| City |
| Country |
您的最终“绝非一步”也不是步骤,不应该包含在您的方案中,它应该是AfterHook的一部分