On Nov 12, 2008, at 10:23 , Dave Thomas wrote: > > On Nov 12, 2008, at 12:55 PM, Ryan Davis wrote: > >> I've been talking to both John and Dave Thomas about this >> (separately). Currently minitest/unit.rb is analogous to test/unit/ >> testcase.rb, not test/unit.rb and I really like it that way. It >> means I can finally write abstract testcases w/o autorun side >> effects (and w/o the undef_method madness from test/unit). But, I >> agree that the current situation is confusing and less than ideal. >> I think the simplest thing that could possibly work is to have an >> explicit require for autorun behavior: >> >> # minitest/autorun.rb: >> >> require 'minitest/unit' >> require 'minitest/spec' >> require 'minitest/mock' >> >> MiniTest::Unit.autorun >> >> --- >> >> What do you guys think? > > (As you know.. :) I'd vote for autorun being the default, as most > people use it, and making it possible to disable autorun when you > define the tests. after careful consideration, I decided against this. One of Jeremy Kemper's latest bugs (on ruby 1.9) was the final straw. I weighed the pros and cons of going with your idea of having a special superclass construct to disable autorun for abstract testcases, and that was finally rejected because it wasn't the simplest thing that could possibly work. I finalized (as finalized as I ever get at least) on 'minitest/autorun.rb' as the simplest thing that could possibly work. It is already in ruby trunk and will go out in the next release of minitest. (I should point out that I only did the first require, not spec or mock). It just makes much more sense to me from a design perspective.