是否可以在同一场景中有条件地 运行 黄瓜步骤?
Is it possible to run cucumber steps conditionally in the same scenario?
所以基本上我希望能够使用相同的功能文件和 运行 两个单独的测试,一个用@mobile 标记,另一个用@desktop 标记。这样我就不必为一个步骤复制另一个功能文件。
所以像这样:
Scenario: Steps will run conditionally if tagged
Given user is logged in
@mobile
When user clicks "logout link on mobile"
@desktop
When user clicks "logout link on desktop"
Then user will be logged out
当我 运行 移动测试时(我将在配置文件中包含 @~desktop),我希望它忽略 @desktop 步骤,反之亦然。
对于这种情况,您可以尝试另一种方法 -
像这样在 Cucumber 中保持一步:
When user clicks logout link
Then user will be logged out
在此步骤的代码中,添加一个 if 条件,您可以根据从配置文件传递的标志调用移动或桌面相关功能?
使用 Scenario Outline
并放入两个 Examples
表并标记它们。在过滤器中使用您想要的标签 运行 您的测试。您输入的标签将是 运行 其他的将被忽略。
Scenario Outline: Steps will run conditionally if tagged
Given user is logged in
When user clicks <link>
Then user will be logged out
@mobile
Examples:
| link |
| logout link on mobile |
@desktop
Examples:
| link |
| logout link on desktop |
所以基本上我希望能够使用相同的功能文件和 运行 两个单独的测试,一个用@mobile 标记,另一个用@desktop 标记。这样我就不必为一个步骤复制另一个功能文件。
所以像这样:
Scenario: Steps will run conditionally if tagged
Given user is logged in
@mobile
When user clicks "logout link on mobile"
@desktop
When user clicks "logout link on desktop"
Then user will be logged out
当我 运行 移动测试时(我将在配置文件中包含 @~desktop),我希望它忽略 @desktop 步骤,反之亦然。
对于这种情况,您可以尝试另一种方法 -
像这样在 Cucumber 中保持一步:
When user clicks logout link
Then user will be logged out
在此步骤的代码中,添加一个 if 条件,您可以根据从配置文件传递的标志调用移动或桌面相关功能?
使用 Scenario Outline
并放入两个 Examples
表并标记它们。在过滤器中使用您想要的标签 运行 您的测试。您输入的标签将是 运行 其他的将被忽略。
Scenario Outline: Steps will run conditionally if tagged
Given user is logged in
When user clicks <link>
Then user will be logged out
@mobile
Examples:
| link |
| logout link on mobile |
@desktop
Examples:
| link |
| logout link on desktop |