【发布时间】:2012-05-22 17:07:26
【问题描述】:
已经看过this question,这或多或少反映了我目前运行整个套件的方式。
此外,我还设置了以下 rake 任务:
Rake::TestTask.new do |t|
t.name = "spec:models"
t.libs << "test"
t.pattern = "spec/models/*_spec.rb"
end
但是我注意到当我使用time rake spec:models 运行它时,它在大约 2.36 秒内完成。如果我使用ruby /path/to/spec.rb 运行该目录中的所有单独测试(目前所有测试都与 ActiveRecord 隔离 - 还没有持久性,非常快),它们的累积总用户时间为 2.36 秒,但我也注意到每个文件从开始到结束执行需要 0.4 个用户秒,MiniTest 报告的实际“测试”时间要快得多(这样我的整个套件,在加载依赖项后,应该在不到 0.15 秒的时间内执行,而不是 2.36 秒)。
示例(针对一个规范文件):
Started
11/11: 100% |======================================| Time: 00:00:00
Finished in 0.02223s
11 tests, 15 assertions, 0 failures, 0 errors, 0 skips
ruby path/to/spec.rb 0.43s user 0.06s system 88% cpu 0.559 total
我怀疑 Rake 会在每次测试执行之间重新加载库,这会占用额外的时间。无论如何我可以验证这一点,或者在不使用 Rake 的情况下运行我的整个套件吗?
顺便说一句,当我前面说“用户时间”时,我指的是通过在我的 ruby 命令前面加上 time 输出的第一个数字来运行单个测试文件,所以 time ruby /path/to/spec.rb = ruby path/to/spec.rb 0.43s user 0.06s system 88% cpu 0.559 total
【问题讨论】:
-
你找到解决方案了吗?
标签: ruby-on-rails ruby rake minitest