使用rake
任务进行“有趣”的段错误。从命令行运行如此处引用时,它可以正常工作。如果我通过一次rake
来电运行所有system
个任务,我就会遇到段错误。
task :cruise do
system 'rake db:reset db:test:clone teabag'
system 'rake spec'
end
对于那些不熟悉它的人来说,Teabag是“构建在Rails之上的JavaScript测试运行器”。所以我们在这里基本上是:
版本信息:
rvm
我的Gemfile
和Gemfile.lock
位于this Gist。任务输出包括崩溃转储,为on Pastebin。
EDITED 2013年3月5日12:20 SGT(GMT + 8)*
我把任务重写为
task :cruise do
['db:reset', 'db:test:clone', 'teabag', 'spec'].each do |task|
Rake::Task[task].reenable
Rake::Task[task].invoke
end
end
并按预期运行。 (请注意,我必须添加Rake::Task[task].reenable
以消除RSpec段错误。)
这仍然无法回答为什么RSpec在作为多任务rake
命令行的一部分运行时(与原始system
- 调用任务一样)或在重做cruise
任务,而不是reenable
之前调用invoke
。但我有解决方法,所以我认为问题已经回答。