4

カブと Ruby on Railsを使用しています。JavaScript を使用するシナリオと使用しないシナリオがあります。transactionJavaScript 以外のシナリオには DatabaseCleaner 戦略を使用し、などでtruncationマークされたシナリオには戦略を使用したいと考えています。@javascript@selenium

Rspec機能には次のソリューションを使用しています

config.around(:each, :js => true) do |ex|
  DatabaseCleaner.strategy = :truncation
  ex.run
  DatabaseCleaner.strategy = :transaction
end

しかし、カブの場合はうまくいきません。期待どおりに動作させるための最良の方法は何ですか? または、言い換えると、@javascript(または@seleniumおよびなど)タグでマークされたカブのシナリオをどのように指定するのconfig.beforeですか?

4

1 に答える 1

5

カブのコードを調べることによって、私はそのような構成オプションを生み出します

 config.around(:each, type: :feature, javascript: true) do |example|
   DatabaseCleaner.strategy = :truncation
   example.run
   DatabaseCleaner.strategy = :transaction
 end

この場合、戦略はtruncation、シナリオが@javascript次のようにタグでタグ付けされたときに設定されます。

  @javascript
  Scenario: Viewing users
    Given the following users:

しかし、私の考えでは、たとえば1つのシナリオでSeleniumを使用する場合は、@javascrtiptタグをタグで置き換えるのではなく、次のようにタグの後にタグ@seleniumを追加する必要があります。@selenium@javascript

  @javascript @selenium
  Scenario: Viewing users
    Given the following users:
于 2013-03-19T06:41:56.987 に答える