4

我正在使用Turnip和 Ruby on Rails。我有使用和不使用 javascript 的场景。我想对transaction非 JavaScript 场景使用 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:

但是在我的灵魂中,当您想在一种情况下使用例如 Selenium 时,您不应该@javascrtipt逐个标签替换标签,@selenium而是在@selenium标签后添加标签,@javascript如下所示

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