Protractor-Cucumber 测试执行顺序

Protractor-Cucumber order of tests execution

我正在使用 Protractor-Cucumber 框架为我的应用程序编写自动测试。

我有几个功能文件,每个功能文件都有多个场景,我想使用 Cucumber 标签管理它们的执行顺序。 显然,所有场景都属于"FullRegression"类,但我也想用"SmokeTest"标签将其中一些场景标记为每天运行。 问题是那些 "Smoke" 场景分散在各个功能中,它们需要按特定顺序执行才能正常工作。

例如,我想 运行 Feature2 的场景 2 和 3,然后 运行 Feature1 的场景 1 和 2,然后 运行 Feature3 的场景 5。

是否可以使用 Cucumber 标签来做到这一点?我试过了,但它没有像我预期的那样工作。我唯一的另一个想法是创建特殊的 "SmokeTest.feature" 文件,但我需要在其中重复很多场景。

感谢任何帮助。

Cucumber 的设计让所有的场景都相互独立,不能连接在一起。每个场景都从头开始,清除会话,清空数据库等。这是所有主要测试框架的标准做法(幂等性)

所以没有简单的方法可以做你想做的事,更重要的是做你想做的事没有意义。

现在有些人煞费苦心地解决这个问题(尤其是一些 Cucumber 用户),所以这可能发生在您的测试套件中,但这又是一件非常糟糕的事情。

如果您想合并场景,您应该编写新的场景,使用您想要合并的场景的步骤,例如

Scenario: Foo
  When I foo
end

Scenario: Bar
  When I bar
end

# This is the one you would write
Scenario: Foo bar
  When I foo
  And I bar
end