package de.saumya.mojo.runit; public class RunitMavenTestScriptFactory extends AbstractRunitMavenTestScriptFactory { @Override void getTestRunnerScript(StringBuilder builder) { builder.append("require 'fileutils'\n"); builder.append("FileUtils.mkdir_p(File.dirname(REPORT_PATH))\n"); builder.append("if defined?( Test::Unit::AutoRunner ) and Test::Unit::AutoRunner.respond_to?(:setup_option)\n"); builder.append(" Test::Unit::AutoRunner.setup_option do |auto_runner, opts|\n"); builder.append(" opts.on('--output-file=FILE', String, 'Outputs to file') do |file|\n"); builder.append(" auto_runner.runner_options[:output] = Tee.open(file, 'w')\n"); builder.append(" end\n"); builder.append(" end\n"); builder.append(" ARGV << \"--output-file=#{REPORT_PATH}\"\n"); builder.append("else\n"); builder.append(" begin\n"); builder.append(" require 'minitest/autorun'\n"); builder.append(" MiniTest::Unit.output = Tee.open(REPORT_PATH, 'w') if MiniTest::Unit.respond_to? :output=\n"); builder.append(" rescue LoadError\n"); builder.append(" require 'test/unit/ui/console/testrunner'\n"); builder.append(" class Test::Unit::UI::Console::TestRunner\n"); builder.append(" extend Test::Unit::UI::TestRunnerUtilities\n"); builder.append(" alias :old_initialize :initialize\n"); builder.append(" def initialize(suite, output_level=NORMAL)\n"); builder.append(" old_initialize(suite, output_level, Tee.open(REPORT_PATH, 'w'))\n"); builder.append(" end\n"); builder.append(" end\n"); builder.append(" end\n"); builder.append("end\n"); } @Override protected String getScriptName() { return "test-runner.rb"; } }