Rspec加载时间太长

时间:2013-01-22 10:30:38

标签: ruby ruby-on-rails-3 tdd datamapper rspec-rails

我正在使用Rspec和我的Rails 3.2.11应用程序。我已经安装并设置了spork。 我使用datamapper作为ORM。

然而,当spork运行时,运行一次测试需要一分多钟。 即使正在运行的测试是空的。肯定是错的。但我无法想象 到底是什么。

我的test_spec是这样的:

require "spec_helper"
require "cancan/matchers"

describe User do
end

我的规范帮助文件可以在这里找到:https://gist.github.com/4593609

当我计时rspec:

➜  books git:(dev) ✗ time rspec --drb spec/models/test_spec.rb
No examples found.


Finished in 1 minute 51.08 seconds
0 examples, 0 failures
rspec --drb spec/models/test_spec.rb  1.49s user 0.04s system 1% cpu 1:52.94 total

Spork日志:

➜  books git:(dev) ✗ spork
Using RSpec
Preloading Rails environment
Loading Spork.prefork block...
Rack::File headers parameter replaces cache_control after Rack 1.5.
Spork is ready and listening on 8989!
Running tests with args ["spec/models/test_spec.rb"]...
Done.

Running tests with args ["spec/models/test_spec.rb"]...
Done.

这是一个空的规格。对于具有大量示例的规范,需要更多时间。 什么可以花很长时间才能运行?

2 个答案:

答案 0 :(得分:2)

在运行测试时查看test.log,可能是每次测试都完成了数据库设置,并且占用了时间。

tail -f log/test.log 运行测试时

答案 1 :(得分:1)

我找到了解决这个问题的方法。问题在于 我的spec_helper文件。

 config.before(:suite) {
   DataMapper.auto_upgrade!
 }

由于这些配置,Datamapper尝试自动升级 每次我参加考试。在评论此配置时,规范已开始 即使spork没有运行也能正常工作。