cucumber :如何为多个场景只执行一次后台

标签 cucumber cuke4duke

我有一个需要几分钟的背景部分的功能;它通过 API 在远程系统上设置状态。我希望它只对随后的所有场景执行一次,而不是对每个场景都执行。我的场景不会改变任何状态,它们是只读的,所以从一个场景到另一个场景应该没有副作用。

我没有使用 Rails,也没有本地数据库,因此无法处理数据库事务。

我目前正在考虑在 env.rb 中使用 Before 做一些事情,并有一些基于标签的隐式约定/含义的条件代码,例如“@background-only-once”,可以让一些自定义代码跳过这些步骤,或者它可以在步骤定义中执行不同的逻辑——但是尝试在执行之间共享这个有点讨厌。

想法?

最佳答案

这并不能真正解决它,但这就是我在那种情况下所做的。

我转到一个场景,并在评论中标记不同的“场景”。如果您只是将附加场景标题注释掉,这正是会发生的情况。

这是注释掉第二个场景并在第一个功能结束时运行测试状态的示例

Feature: Admin can manage organizations
  In order to ...

Scenario: can add
  When I log into the admin
  When I follow "Organizations"
  When I follow "Add"

  When I fill in "Email" with "red@cross.com"
  When I fill in "Name" with "Red Cross"
  When I press "Save"
  Then I should see "success"

# Scenario: can edit
  When I follow "Red Cross"
  When I fill in "Name" with "Green Cross"
  When I press "Update"

  Then I should see "success"

关于 cucumber :如何为多个场景只执行一次后台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8478356/

相关文章:

Maven 运行 Cucumber 特定功能文件或文件夹

ruby - 如何从 cucumber 表中获取空白或零对象?

selenium - Capybara,从下拉列表中选择第一个选项?

java - 将元素名称传递给另一个类方法

docker - WebDriverError : invalid session id