Rake / RSpec分段故障取决于Rake任务格式。为什么?

时间:2013-03-03 04:55:06

标签: ruby-on-rails rspec segmentation-fault rake

使用rake任务进行“有趣”的段错误。从命令行运行如此处引用时,它可以正常工作。如果我通过一次rake来电运行所有system个任务,我就会遇到段错误。

task :cruise do
  system 'rake db:reset db:test:clone teabag'
  system 'rake spec'
end

对于那些不熟悉它的人来说,Teabag是“构建在Rails之上的JavaScript测试运行器”。所以我们在这里基本上是:

  1. 重新初始化(开发)数据库
  2. 从已知状态开发中克隆测试数据库;和
  3. 运行{Java,Coffee}脚本和Ruby / Rails的规范。
  4. 版本信息:

    • OS X 10.8.2
    • ruby​​ 1.9.3p392(2013-02-22修订版39386)[x86_64-darwin12.2.0]
    • 使用rvm
    • Rails 3.2.12

    我的GemfileGemfile.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。但我有解决方法,所以我认为问题已经回答

0 个答案:

没有答案