gpt4 book ai didi

ruby - 如何避免使用 Cucumber 出现 "including Capybara::DSL in the global scope is not recommended!"?

转载 作者:数据小太阳 更新时间:2023-10-29 08:37:49 29 4
gpt4 key购买 nike

将我的 Cucumber 测试从 Selenium-Webdriver 切换到 Capybara 后,一切都按预期进行。但我不断收到此警告:

"including Capybara::DSL in the global scope is not recommended!"

谷歌搜索此错误消息出现了一堆结果,但所有结果都是针对 RSpec 的;本质上,他们建议将 include Capybara::DSL 移动到 RSpec 配置(参见例如 Why do I get "including Capybara::DSL in the global scope is not recommended!")。我尝试对我的 Cucumber 配置执行相同的操作,但无济于事(请参阅下面的方法部分)。

我当前的代码

features/youtube.feature:

Feature: Searching for videos 

Scenario: Searching for videos
Given I go to the YouTube web site
And I search for "text adventure"
Then I should see the text "GET LAMP: The Text Adventure Documentary"

features/steps/youtube_steps.rb:

require 'capybara'
require 'capybara/dsl'
require 'rspec'

include RSpec::Expectations
include Capybara::DSL

Capybara.default_driver = :selenium
Capybara.run_server = false

When(/^I search for "(.*?)"$/) do |value|
page.fill_in("search_query", :with => value)
page.click_button("search-btn")
end

Then(/^I should see the text "(.*?)"$/) do |value|
page.should have_content(value)
end

Given(/^I go to the YouTube web site$/) do
Capybara.app_host = "http://www.youtube.com"
page.visit("")
end

我尝试过的方法

  • include Capybara::DSL 放入 Before 钩子(Hook)中(结果:Cucumber 不再找到 Capybara 特定的方法,如 page )
  • config.extend Capybara::DSL 放入 BeforeConfiguration 钩子(Hook)中(结果:Cucumber 没有找到 Capybara 特定的方法,例如 page 再)
  • 使用 include Capybara 而不是 include Capybara::DSL(结果:另一个警告,告诉我这是过时的,我应该使用 include Capybara::DSL 代替)

我应该将我的 include Capybara::DSL 放在哪里以消除警告?

最佳答案

您想在 Cucumber 步骤中包含 Capybara::DSL 而不是全局范围。 Cucumber 允许您使用 World 执行此操作.

通过使用以下行将 Capybara::DSL 包含在世界中:

World(Capybara::DSL)

正如@engineersmnky 所提到的,您可能只想:

require 'capybara/cucumber'

这会将 Capybara::DSL 添加到世界中,以及 RSpec::Expectations。它还设置了几个 Hook 。您可以通过检查 capybara/cucumber.rb file 来确切地看到这会做什么。 .

关于ruby - 如何避免使用 Cucumber 出现 "including Capybara::DSL in the global scope is not recommended!"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25205432/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com