看着这个问题 https://stackoverflow.com/questions/4788288/how-to-run-all-the-tests-with-minitest已经,这或多或少反映了我目前运行整个套件的方式。
此外,我还设置了以下 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 报告的“test”时间要快得多(这样我的整个套件在加载依赖项后,应该在不到 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 的情况下运行我的整个套件?
顺便说一句,当我之前说“用户时间”时,我指的是通过前置输出的第一个数字time
到我的 ruby 命令来运行单个测试文件,所以time ruby /path/to/spec.rb
= ruby path/to/spec.rb 0.43s user 0.06s system 88% cpu 0.559 total
创建文件spec.rb
在项目的顶层目录中:
$:<<'spec' # add to load path
files = Dir.glob('spec/**/*.rb')
files.each{|file| require file.gsub(/^spec\/|.rb$/,'')}
Run it:
ruby spec.rb
如果这对您有用,您可以重命名spec.rb
文件,或者将其移动到更好的位置,或者根据需要更改加载路径等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)