这是minitest,链轮轨道,还是红宝石2的bug ?



我想修补spprocketsrails中的一个bug,但是当我运行测试套件(使用ruby-2.0.0-p0以及ruby-head)时,我得到了以下错误:

/Users/btaitelb/.rvm/rubies/ruby-head/lib/ruby/2.1.0/test/unit.rb:707:in `block in _prepare_run': undefined method `size' for #<ParallelEach:0x007f823aa55e88> (NoMethodError)
    from /Users/btaitelb/.rvm/rubies/ruby-head/lib/ruby/2.1.0/test/unit.rb:707:in `each'
    from /Users/btaitelb/.rvm/rubies/ruby-head/lib/ruby/2.1.0/test/unit.rb:707:in `inject'
    from /Users/btaitelb/.rvm/rubies/ruby-head/lib/ruby/2.1.0/test/unit.rb:707:in `_prepare_run'
    from /Users/btaitelb/.rvm/rubies/ruby-head/lib/ruby/2.1.0/test/unit.rb:648:in `_run_suites'
    from /Users/btaitelb/.rvm/gems/ruby-head@rails-dev/gems/minitest-4.7.1/lib/minitest/unit.rb:861:in `_run_anything'
    from /Users/btaitelb/.rvm/gems/ruby-head@rails-dev/gems/minitest-4.7.1/lib/minitest/unit.rb:1068:in `run_tests'
    from /Users/btaitelb/.rvm/gems/ruby-head@rails-dev/gems/minitest-4.7.1/lib/minitest/unit.rb:1055:in `block in _run'
    from /Users/btaitelb/.rvm/gems/ruby-head@rails-dev/gems/minitest-4.7.1/lib/minitest/unit.rb:1054:in `each'
    from /Users/btaitelb/.rvm/gems/ruby-head@rails-dev/gems/minitest-4.7.1/lib/minitest/unit.rb:1054:in `_run'
    from /Users/btaitelb/.rvm/gems/ruby-head@rails-dev/gems/minitest-4.7.1/lib/minitest/unit.rb:1042:in `run'
    from /Users/btaitelb/.rvm/rubies/ruby-head/lib/ruby/2.1.0/test/unit.rb:21:in `run'
    from /Users/btaitelb/.rvm/rubies/ruby-head/lib/ruby/2.1.0/test/unit.rb:774:in `run'
    from /Users/btaitelb/.rvm/rubies/ruby-head/lib/ruby/2.1.0/test/unit.rb:834:in `run'
    from /Users/btaitelb/.rvm/rubies/ruby-head/lib/ruby/2.1.0/test/unit.rb:838:in `run'
    from /Users/btaitelb/.rvm/rubies/ruby-head/bin/testrb:7:in `<main>'

我不清楚Test::Unit和MiniTest之间的关系,特别是因为我看到了Test/Unit。rb引用MiniTest::Unit

我可以用几种方式修补这个问题,但我不确定哪个项目是罪魁祸首(例如,我应该在哪里提交补丁):

  1. 在测试/单位。在ruby中,我可以用对count的调用替换对size的调用,但这似乎只有在Test::Unit期望ParallelEach成为测试套件
  2. 的一部分时才合适。
  3. 在minitest中,我可以别名countsize,这是有意义的,如果minitest负责将ParallelEach对象发送到Test::Unit

这两个是合适的,还是有其他的事情发生(比如命名冲突)?

这原来是minitest中的一个bug,已经修复了:https://github.com/seattlerb/minitest/pull/275