def run(tests, dependencies)
maybe_install_jruby
dependencies |= [task.compile.target.to_s]
spec_dir = task.project.path_to(:source, :spec, :ruby)
report_dir = task.report_to.to_s
rm_rf report_dir
mkdir_p report_dir
ENV['CI_REPORTS'] = report_dir
runner = runner_config
runner.content = runner_content(binding)
Buildr.write(runner.file, runner.content)
rm_f runner.result
if RUBY_PLATFORM[/java/] && !options.fork
runtime = new_runtime
runtime.getObject.java.lang.System.getProperties().putAll(options[:properties] || {})
runtime.getLoadService.require runner.file
else
cmd_options = task.options.only(:properties, :java_args)
cmd_options.update(:classpath => dependencies, :project => task.project)
jruby runner.file, tests, cmd_options rescue nil
end
fail "Missing result YAML file: #{runner.result}" unless File.exist? runner.result
result = YAML.load(File.read(runner.result))
if Exception === result
raise [result.message, result.backtrace].flatten.join("\n")
end
tests - result.failed
end