From 5fac54a594b475e7b7a07e925c0353e18c685f2b Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Thu, 6 Feb 2020 20:53:11 +0900 Subject: [PATCH] Fixed the output from separated test in parallel test Redirect the output of separated child process to `MiniTest::Unit.output`. --- tool/lib/test/unit/core_assertions.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tool/lib/test/unit/core_assertions.rb b/tool/lib/test/unit/core_assertions.rb index edaf83938f..836d712049 100644 --- a/tool/lib/test/unit/core_assertions.rb +++ b/tool/lib/test/unit/core_assertions.rb @@ -110,9 +110,12 @@ module Test file ||= loc.path line ||= loc.lineno end + capture_stdout = true if /mswin|mingw/ =~ RUBY_PLATFORM res_out = "STDOUT" else + capture_stdout = false + opt[:out] = MiniTest::Unit.output res_p, res_c = IO.pipe opt[res_c.fileno] = res_c.fileno res_out = "IO.new(#{res_c.fileno}, 'w')" @@ -130,7 +133,7 @@ module Test eom args = args.dup args.insert((Hash === args.first ? 1 : 0), "-w", "--disable=gems", *$:.map {|l| "-I#{l}"}) - stdout, stderr, status = EnvUtil.invoke_ruby(args, src, true, true, **opt) + stdout, stderr, status = EnvUtil.invoke_ruby(args, src, capture_stdout, true, **opt) if res_c res_c.close res = res_p.read