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

时间:2016-12-21 22:36:51

标签: javascript selenium selenium-webdriver protractor cucumber

所以基本上我希望能够使用相同的功能文件并运行两个单独的测试,一个用@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步骤,反之亦然。

2 个答案:

答案 0 :(得分:1)

您可以尝试另外一种方法 -

像这样在黄瓜中保持一步:

When user clicks logout link
Then user will be logged out

在此步骤的代码中,添加if条件,您可以根据从配置文件传递的标志调用移动或桌面相关功能?

答案 1 :(得分:0)

使用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 |