Rspec更快,但在Spork上仍然很慢

时间:2011-12-13 17:23:12

标签: ruby-on-rails rspec tdd spork guard

我的规格(仅1次测试)用rspec运行大约40秒。我现在有一个spork跑,它确实把时间减少到大约17秒,但这似乎仍然有点荒谬,只有一个测试。我使用的是AMD Athlon II X2 250 3.0GHz处理器,Ubuntu 11.04,4GB RAM。在运行测试的过程中,处理器在两个内核上的运行时间看起来很短。这一切听起来都很正常还是有什么奇怪的事情发生?

此外,当通过Guard运行时,计时器永远不会重置。因此,第一次测试报告17秒,然后如果我在开始下一次测试前等待15秒,17秒后它会报告第二次测试需要49秒(第一次测试为17次,第二次测试为17次,第二次测试为17次)。这是正常的吗?

describe "CompanyCustomers" do
  it "allows creation of new customers" do
    visit new_company_customer_path
    fill_in "company_customer_first_name", :with => "John"
    fill_in "company_customer_last_name", :with => "Doe"
    click_button("Save")
    page.should have_content("John Doe")
  end
end

1 个答案:

答案 0 :(得分:4)

这将修复计时器,直到Guard或RSpec团队修复该计时器。

Spork.each_run do
  $rspec_start_time = Time.now
end

不,这对于一次测试来说太多了。使用该代码,如果时间看起来更真实,请告诉我。

如果它仍然超过10秒,你应该尝试模仿真实的代码。在浏览器中自己动手。控制器响应需要这么长时间吗?也许你需要在那里进行优化。

如果没有,请告诉我们您的spec_helper。