9

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

ありがとう!

4

3 に答える 3

6

キュウリでは、これを 2 つのステップで行いました。

/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

javascriptこれにより、その特定のシナリオを実行するときにドライバーを使用するように cucumber に指示されます。

これは、私が Capybara Webkit を使用してこれを行った方法です。他のドライバーも同様であると確信しています。

于 2012-05-09T03:00:41.293 に答える
5
Capybara.current_driver = :webkit # temporarily select different driver
#... tests ...
Capybara.use_default_driver       # switch back to default driver
于 2012-05-09T01:37:00.917 に答える
1

cucumber では、タグを使用してこれを実現できます。たとえば、デフォルトのドライバーが 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
于 2017-09-26T14:39:17.053 に答える