capybara会忽略before(:all)块中的代码吗?我该怎么办?

时间:2014-01-04 23:38:56

标签: ruby-on-rails capybara

我完全明白为什么你应该使用之前(:每个)并使所有期望彼此独立,但我只是对为什么会发生这种情况感兴趣:

before(:each) { visit "/" } # Selenium visits the root path of my app
before(:all) { visit "/" } # Selenium doesn't even open firefox. 

background(:all)没有任何反应,但如果我在同一个上下文中引发异常,Selenium会打开firefox并访问这个奇怪的空文件。

file:///home/starkers/.rvm/gems/ruby-2.0.0-p247/gems/capybara-2.2.0/lib/capybara/empty.html

所以有人知道Capybara是否会主动忽略前一个块中的代码(:all),如果是这样,我怎样才能让它不忽略before(:all)中的代码? < / p>

这不是一个非常严肃的项目,但我正在考虑与Capybara进行基准测试,所以如果有人向我展示了让Capybara使用之前(:all)的方法,那就太好了。

1 个答案:

答案 0 :(得分:0)

这两个before块存在明显差异。

每次测试前都会对

before(:each)进行评估。

在运行测试之前评估

before(:all)。一次。

您应该使用before(:each)