MiniRunner sets @@out in ::MiniTest::Unit to StringIO.new.
This way the whole MiniTest subsystem can not be reused correctly, namely suppose turns is loaded automatically by Rails' version of test_helper, but user wants to use one of reporters from minitest-reporters and so in its test_helper.rb she has the following code
MiniTest::Unit.runner = MiniTest::SuiteRunner.new
MiniTest::Unit.runner.reporters << MiniTest::Reporters::RubyMateReporter.new
and after that point there is no output :(
Perhaps, if you just want to turn all output of minitest when turn's runner is used it would be better to override output method to return instance of StringIO?
Will this work for your purposes?
Yes, that's a good point. At the time I didn't give much thought to the fact that it was a class instance variable, not an regular instance variable.
If it can be changed such that the output is still redirected for turn, then I would happily accept a pull request.
Ok, I will see what could be done :)
Issue #96: MiniRunner should not change @@out, but override output() …
Thank you for accepting the request. When you are going to release a new version of turn so the changes become available?