【问题标题】:Unable to run more than one spec scenario无法运行多个规范场景
【发布时间】:2014-07-08 20:25:26
【问题描述】:

我的 Capybara 规格有问题。问题是,当我在多个场景中运行规范时,它会崩溃 - 评论这两种场景中的任何一种都会使测试通过。错误表示无法在数据库中创建具有相同 ID 的另一条记录(我必须创建此对象,作为测试种子数据,具有专门设置的 ID)。但是,该对象是在规范开头的背景子句中创建的一次。 有谁知道,为什么会出现这个错误?更重要的是,在第二种情况下可能什么都没有(反之亦然)并且测试不会通过。只是不会在运行中通过第二个场景。

规范的结构:

feature "..." do
  given(...){...}

  background do
    ...
    FactoryGirl.create(:my_object, id: 17)
    ...
    ...logging into system
  end

  scenario "first" do
    ...
  end


  scenario "second" do
    ...
  end

end

【问题讨论】:

    标签: ruby-on-rails postgresql ruby-on-rails-4 rspec capybara


    【解决方案1】:

    转换

     background do
        ...
        FactoryGirl.create(:my_object, id: 17)
        ...
        ...logging into system
      end
    

    到-------------

    before(:all) do
        ...
        FactoryGirl.create(:my_object, id: 17)
        ...
        ...logging into system
      end
    

    【讨论】:

    • 谢谢!更改为 background(:all) 就足够了,现在可以完美运行了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-10
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多