rye*_*guy 8 unit-testing ruby-on-rails
我的测试套件只需要5秒才能启动,这是正常的吗?即使在运行空套件时,它仍然需要很长时间.是因为它在每次运行时都会启动一个新的rails实例吗?如果是这样,无论如何都要坚持下去吗?
例:
rlepidi@rlepidi:~/projects/rails/my_project$ time rake test
/usr/bin/ruby1.9.1 -I"lib:test" "/var/lib/gems/1.9.1/gems/rake-0.8.7/lib/rake/rake_test_loader.rb" "test/unit/release_test.rb"
Loaded suite /var/lib/gems/1.9.1/gems/rake-0.8.7/lib/rake/rake_test_loader
Started
Finished in 0.000181867 seconds.
0 tests, 0 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
0% passed
real 0m4.173s
user 0m3.820s
sys 0m0.288s
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,这个空测试非常快,但由于某些原因仍然有4秒的开销.我正在使用Test :: Unit和Shoulda.
sim*_*rmy 11
测试速度瓶颈是Rails加载其环境所需的时间.运行脚本/控制台,看看将您加载到您的环境所需的时间......它应该是相同的.
一个你有足够大的代码库,有很多插件和宝石,加载时间可以高达1分钟!如果你像我一样停止运行测试b/c你只是为了测试一个小小的变化而等待30秒,你需要运行像spec_server这样的测试服务器,甚至更好:spork!
您会发现使用spec_server处理类缓存可能存在奇怪的问题,这就是我更喜欢spork的原因.