是否可以在同一场景中有条件地 运行 黄瓜步骤?

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 |