Rspec 如何使before钩子只执行一次?

Rspec 如何使before钩子只执行一次?,rspec,capybara,Rspec,Capybara,在我当前的代码中,我在运行每个规范之前执行了visit'root'和login命令。如何让它只执行一次,以便加快测试速度?目前为了解决这个问题,我在一个规范中添加了几个规范 它也是一个客户端JS应用程序,因此该应用程序必须基于每次访问调用构建。登录也可能很慢。一旦加载了应用程序,其余的就可以很快完成了 feature "Edit Project Page" do context "logged in user with one project" do # would like t

在我当前的代码中,我在运行每个规范之前执行了visit'root'和login命令。如何让它只执行一次,以便加快测试速度?目前为了解决这个问题,我在一个规范中添加了几个规范

它也是一个客户端JS应用程序,因此该应用程序必须基于每次访问调用构建。登录也可能很慢。一旦加载了应用程序,其余的就可以很快完成了

feature "Edit Project Page" do

  context "logged in user with one project" do

    # would like this to execute once for the context
    before() do
      visit root_path      # slow, whole app has to rebuild
      login_user           # also slow
      sleep 1
      @user_id = user_id()
      create_project
    end

    scenario "foo" do
      #...
      page.should have_content "foo"
    end 

    scenario "bar" do
      #...
      page.should have_content "bar"
    end 

  end

end

在一些故障排除之后,它看起来像以前一样:只有在我假设没有参数会执行此操作时,all才会运行安装程序