我正在使用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.
这是一个空的规格。对于具有大量示例的规范,需要更多时间。 什么可以花很长时间才能运行?
答案 0 :(得分:2)
在运行测试时查看test.log,可能是每次测试都完成了数据库设置,并且占用了时间。
tail -f log/test.log
运行测试时
答案 1 :(得分:1)
我找到了解决这个问题的方法。问题在于 我的spec_helper文件。
config.before(:suite) {
DataMapper.auto_upgrade!
}
由于这些配置,Datamapper尝试自动升级 每次我参加考试。在评论此配置时,规范已开始 即使spork没有运行也能正常工作。