【问题标题】:How to run a before each block only for Capybara specs in RSpec?如何在 RSpec 中仅针对 Capybara 规范在每个块之前运行一个?
【发布时间】:2015-04-17 19:27:41
【问题描述】:

我有 Capybara JS 规范和 Rack Test 规范。我只想为 Capybara 规格设置一个 before :each 块。 Capybara 的所有规范都是 JS。

我尝试使用before :each, js: :true,但规格未标记为 JS。我将默认驱动设置为 webkit,所以我不必将每个规范都标记为 JS。

那么,如何在 Capybara 规范上运行 before :each 并排除机架测试规范?

【问题讨论】:

  • 水豚规格是如何识别的?
  • 当前使用 :js。但是,我可以将它们放在一个单独的目录中(比如 features)。或者使用单独的标签,例如 :jasmine.

标签: ruby-on-rails ruby rspec capybara


【解决方案1】:

你的 spec_helper 中这样的东西应该可以工作:

Capybara.configure do |config|
  config.before(:suite) do
    # do before whole test suite
  end

  config.before(:each) do
    # do before each test
  end
end

另外,分离出你的特性绝对是一个好主意,所以你的规范文件夹看起来像这样:

/spec
  /controllers
  /features
  /models

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 2017-06-14
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多