ruby - 在 Cucumber 特征文件之前只需要执行一次步骤(每个特征可能有差异步骤)

标签 ruby selenium-webdriver cucumber capybara site-prism

我只想在每个 cucumber 特征文件之前执行一次特定步骤。一个 Cucumber 特征文件可以有多个场景。我不想在每个场景之前执行这里的后台步骤。每个功能文件都可以有一个仅执行一次的步骤(每个功能都不同)。所以我不能在钩子(Hook)之前使用那个步骤,因为我对每 20 个功能都有一个特定的步骤。 Gherkin 示例如下所示:

Scenario: This will execute only once before all scenario in this current feature
When Navigate to the Page URL

Scenario: scenario 1
When Some Action
Then Some Verification

Scenario: scenario 2
When Some Action
Then Some Verification

Scenario: scenario 3
When Some Action
Then Some Verification

我希望你们理解我的问题。我在我的框架中使用 Ruby Capybara Cucumber。

最佳答案

Cucumber 并不真正支持您所询问的内容。使用 cucumber 钩子(Hook)实现这一点的一种方法是使用这两个文档:

https://github.com/cucumber/cucumber/wiki/Hooks#tagged-hooks

https://github.com/cucumber/cucumber/wiki/Hooks#running-a-before-hook-only-once

您将适本地标记所有功能文件,并且您可以实现标记的 Before Hook ,该 Hook 在每个功能标记的基础上执行一次。

它并不漂亮,但它无需等待功能请求(或使用不同的工具)即可完成您想要的。

关于ruby - 在 Cucumber 特征文件之前只需要执行一次步骤(每个特征可能有差异步骤),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35469935/

相关文章:

python - 如何使用selenium python从动态表中提取数据?

java - Assertequals 方法不起作用

spring - 如何用 cucumber 激活 Spring 启动配置文件

ruby-on-rails - 如何让 Capybara 在 Cucumber 功能中执行 DELETE 请求?

selenium - 如何从 Java 代码而不是 JUnit Runner 运行 cucumber 功能文件

ruby-on-rails - 带有年龄的 Rails 日期验证

ruby - 在 Ruby 中,如何跳过 .each 循环中的循环,类似于 'continue'

selenium - 如何选择 selenium 中 id 中有句点的元素?

ruby-on-rails - Rails 中 I18n.t 和 t 的区别

ruby - 使用 Watir-webdriver 如何检查页面的 URL