如何让我的警卫/ rspec测试运行得更快

时间:2012-01-20 20:10:56

标签: ruby-on-rails-3 rspec tdd rspec2 guard

我在ruby 1.9.2的rails 3.1 app ontop中运行以下宝石:

group :test, :development do
gem 'turn', '<0.8.3'
gem 'rspec-rails'
gem 'capybara'
gem 'guard-rspec'
gem 'minitest'
gem 'ruby_gntp'
gem "win32console", "~> 1.3.0"
end

我只是通过运行

初始化了guard和rspec
rails g integration_test MyApp

命令。

所以,我只有一个由命令生成的示例测试。它看起来像这样:

 require 'spec_helper'

describe "Tasks" do
  describe "GET /tasks" do
    it "works! (now write some real specs)" do
      # Run the generator again with the --webrat flag if you want to use webrat methods/matchers
      get tasks_index_path
      response.status.should be(200)
    end
  end
end

出于某种原因,当我跑卫,它需要防守和rspec在3.5和5秒之间,只是在小测试中失败了。在我看到的这些内容上,他们的机器在Mac上运行了大约.0159秒的精确测试。我该怎么做才能提高这些测试的性能?

我在Windows 7机器上运行它。

有没有人处理过这种情况?

1 个答案:

答案 0 :(得分:1)

正如@jstim在上面提到的那样,这个问题的一个单词答案就是Spork。

至少,您需要将以下内容添加到:test, :development块中:

gem 'spork', '~> 1.0rc'
gem 'guard-spork'

以下是Spork README的链接。

它的作用是设置一个预加载块,您可以根据需要随意放置应用程序。当然,好处是更快的测试,因为每次都不需要运行所有的东西。缺点是如果您对预装的内容进行了更改,则将不会进行测试。您需要在更改后重新启动Spork。