如何更改水豚黄瓜测试的测试默认驱动程序



在 Capybara 提供的文档中,您可以更改特定测试组的default_driver:

describe 'some stuff which requires js', :js => true do
  it 'will use the default js driver'
  it 'will switch to one specific driver', :driver => :selenium
end

如果我想为特定的黄瓜测试组执行此操作怎么办?我将如何添加这些参数?

When /^I do something$/  do
  fill_in "a_text_box", :with => "stuff"
  fill_in "another_text_box", :with => "another_thing"
end

谢谢!

在黄瓜中,我分两步完成:

/features/support/env.rb 中,放置以下行:

Capybara.javascript_driver = :webkit

然后在黄瓜功能中,在特定场景之前,在场景之前添加@javascript - 如下所示:

@javascript
Scenario: Successful sign in - with no flash message if using current firefox
When I'm using a current version of Firefox
When I visit the practitioner home page with "jane.doe@example.com"'s token
Then I should be signed in as practitioner "Jane Doe"
And I should be on the practitioner activities welcome page
And I should not see a flash message warning me I have an unsupported browser

这会告诉 Cucumber 在运行该特定方案时使用 javascript 驱动程序。

这就是我使用 Capybara Webkit 完成此操作的方式——我确信其他驱动程序也类似。

Capybara.current_driver = :webkit # temporarily select different driver
#... tests ...
Capybara.use_default_driver       # switch back to default driver

对于黄瓜,您可以使用标签来实现这一点。例如,如果您的默认驱动程序是 webkit,但您想使用 selenium 运行某些场景,您可以使用 @selenium 标记它。默认情况下,这适用于gem 'selenium-webdriver'

通常,如果要切换到其他驱动程序(此示例中的无头镶边),请将以下代码放在features/support/drivers.rb中:

# features/support/drivers.rb
Around '@headless_chrome' do |scenario, block|
  begin
    Capybara.current_driver = :headless_chrome # temporarily select headless chrome
    block.call
  ensure
    Capybara.use_default_driver                # switch back to default webkit driver
  end
end

最新更新