test-unit-runner-junitxml 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 55d4fa9cb137d991b347c140b9784d7e807ca0d92259501bfa9f66a8d735ad43
4
- data.tar.gz: 8edc005873b661cce3276fd232fb4952e2f48b71a3466baf612ffa6bf1667ebc
3
+ metadata.gz: dcc822c3eb15c8429e1bf4a416b8d851445949fdcd70e911e978c54e93ef185f
4
+ data.tar.gz: 9019e7126e6c0d038ee23596de5c94e9b0151cd49cad5c295b94535991fd5a8b
5
5
  SHA512:
6
- metadata.gz: fad4528a9efdfb3a9d932d6e2b5b628a92965140f0fa9fa1726cb57b74c47f94aa195059d49003d4162102ec6381ac211969028ebe9b06f0ccb485f8524a80fc
7
- data.tar.gz: 6e124b15e2e7f29a05923ff4ddcac1e71595244b7112da0f356f08c6225b1253aec4176ffc67b97d595f2556eefdeef0d491d390d3fe1ef63d7f4f350ec17468
6
+ metadata.gz: cccd48257f5637df20b4e1df12a9018dce9a60b93c00743291cd841c212dcc97929de63863a65013b4813068e06f6d4fe0bf34c4b220cbc349ce100540b12051
7
+ data.tar.gz: b2d1012a3d79972dea86c3e3c05815e0f87293386b39d188b9672c19a692385964816a60924b5207296ebe0a8860f47a0faaa358e88d25c9513d520025aa96a5
data/README.ja.md CHANGED
@@ -22,6 +22,7 @@ require "test/unit/runner/junitxml"
22
22
 
23
23
  class MyTest < Test::Unit::TestCase
24
24
  def test_1
25
+ print("hello")
25
26
  assert_equal(1, 2)
26
27
  end
27
28
  end
@@ -32,20 +33,26 @@ $ ruby test.rb --runner=junitxml --junitxml-output-file=result.xml
32
33
  $ cat result.xml
33
34
  <?xml version="1.0" encoding="UTF-8" ?>
34
35
  <testsuites>
35
- <testsuite name="MyTest" tests="1" errors="0" failures="1" skipped="0" time="0.0027089">
36
- <testcase classname="MyTest" name="test_1(MyTest)" time="0.0026767" assertions="1">
36
+ <testsuite name="MyTest" tests="1" errors="0" failures="1" skipped="0" time="0.005365">
37
+ <testcase classname="MyTest" name="test_1(MyTest)" time="0.0053308" assertions="1">
37
38
  <failure message="&lt;1&gt; expected but was
38
- &lt;2&gt;.">
39
- Failure:
40
- test_1(MyTest) [test.rb:6]:
39
+ &lt;2&gt;.">Failure:
40
+ test_1(MyTest) [test.rb:7]:
41
41
  &lt;1&gt; expected but was
42
- &lt;2&gt;.
43
- </failure>
42
+ &lt;2&gt;.</failure>
43
+ <system-out>hello</system-out>
44
44
  </testcase>
45
45
  </testsuite>
46
46
  </testsuites>
47
47
  ```
48
48
 
49
+ ## オプション
50
+
51
+ * --junitxml-output-file=FILE_NAME
52
+ * XMLを、標準出力ではなく指定したファイルへ出力します。
53
+ * --junitxml-disable-output-capture
54
+ * 標準出力と標準エラー出力のキャプチャを行わないようになります。
55
+
49
56
  ## ライセンス
50
57
 
51
58
  [MIT License](https://opensource.org/licenses/MIT)
data/README.md CHANGED
@@ -22,6 +22,7 @@ require "test/unit/runner/junitxml"
22
22
 
23
23
  class MyTest < Test::Unit::TestCase
24
24
  def test_1
25
+ print("hello")
25
26
  assert_equal(1, 2)
26
27
  end
27
28
  end
@@ -32,20 +33,26 @@ $ ruby test.rb --runner=junitxml --junitxml-output-file=result.xml
32
33
  $ cat result.xml
33
34
  <?xml version="1.0" encoding="UTF-8" ?>
34
35
  <testsuites>
35
- <testsuite name="MyTest" tests="1" errors="0" failures="1" skipped="0" time="0.0027089">
36
- <testcase classname="MyTest" name="test_1(MyTest)" time="0.0026767" assertions="1">
36
+ <testsuite name="MyTest" tests="1" errors="0" failures="1" skipped="0" time="0.005365">
37
+ <testcase classname="MyTest" name="test_1(MyTest)" time="0.0053308" assertions="1">
37
38
  <failure message="&lt;1&gt; expected but was
38
- &lt;2&gt;.">
39
- Failure:
40
- test_1(MyTest) [test.rb:6]:
39
+ &lt;2&gt;.">Failure:
40
+ test_1(MyTest) [test.rb:7]:
41
41
  &lt;1&gt; expected but was
42
- &lt;2&gt;.
43
- </failure>
42
+ &lt;2&gt;.</failure>
43
+ <system-out>hello</system-out>
44
44
  </testcase>
45
45
  </testsuite>
46
46
  </testsuites>
47
47
  ```
48
48
 
49
+ ## Options
50
+
51
+ * --junitxml-output-file=FILE_NAME
52
+ * Output XML to the specified file instead of the standard output.
53
+ * --junitxml-disable-output-capture
54
+ * Disable capture of standard output and standard error.
55
+
49
56
  ## License
50
57
 
51
58
  [MIT License](https://opensource.org/licenses/MIT)
@@ -2,7 +2,7 @@ module Test
2
2
  module Unit
3
3
  module Runner
4
4
  module Junitxml
5
- VERSION = "0.1.2"
5
+ VERSION = "0.2.0"
6
6
  end
7
7
  end
8
8
  end
@@ -12,6 +12,10 @@ module Test
12
12
  "Outputs to FILE_NAME") do |name|
13
13
  auto_runner.runner_options[:junitxml_output_file] = name
14
14
  end
15
+ opts.on("--junitxml-disable-output-capture",
16
+ "Disable output capture") do |b|
17
+ auto_runner.runner_options[:junitxml_disable_output_capture] = b
18
+ end
15
19
  end
16
20
  end
17
21
  end
@@ -1,4 +1,5 @@
1
1
  require 'erb'
2
+ require 'stringio'
2
3
  require 'test/unit/ui/testrunner'
3
4
  require 'test/unit/ui/testrunnermediator'
4
5
 
@@ -48,12 +49,22 @@ module Test
48
49
  end
49
50
 
50
51
  def test_started(test)
51
- @junit_test_suites.last << JUnitTestCase.new(test.class.name,
52
- test.description)
52
+ test_case = JUnitTestCase.new(test.class.name, test.description)
53
+ @junit_test_suites.last << test_case
54
+ unless @options[:junitxml_disable_output_capture]
55
+ @stdout_org = $stdout
56
+ @stderr_org = $stderr
57
+ $stdout = test_case.stdout
58
+ $stderr = test_case.stderr
59
+ end
53
60
  end
54
61
 
55
62
  def test_finished(test)
56
63
  @junit_test_suites.last.test_cases.last.time = test.elapsed_time
64
+ unless @options[:junitxml_disable_output_capture]
65
+ $stdout = @stdout_org
66
+ $stderr = @stderr_org
67
+ end
57
68
  end
58
69
 
59
70
  def result_pass_assertion(result)
@@ -116,15 +127,17 @@ module Test
116
127
  class JUnitTestCase
117
128
  attr_reader :class_name, :name
118
129
  attr_reader :failure, :error, :omission, :pending
130
+ attr_reader :stdout, :stderr
119
131
  attr_accessor :assertion_count, :time
120
132
 
121
133
  def initialize(class_name, name)
122
134
  @class_name = class_name
123
135
  @name = name
136
+ @failure = @error = @omission = @pending = nil
137
+ @stdout = StringIO.new
138
+ @stderr = StringIO.new
124
139
  @assertion_count = 0
125
140
  @time = 0
126
- @omission = nil
127
- @pending = nil
128
141
  end
129
142
 
130
143
  def <<(fault)
@@ -5,17 +5,19 @@
5
5
  % test_suite.test_cases.each do |test_case|
6
6
  <testcase classname="<%=h test_case.class_name %>" name="<%=h test_case.name %>" time="<%=h test_case.time %>" assertions="<%=h test_case.assertion_count %>">
7
7
  % if test_case.error
8
- <error message="<%=h test_case.error.message %>" type="<%=h test_case.error.exception.class.name %>">
9
- <%=h test_case.error.long_display %>
10
- </error>
8
+ <error message="<%=h test_case.error.message %>" type="<%=h test_case.error.exception.class.name %>"><%=h test_case.error.long_display %></error>
11
9
  % elsif test_case.failure
12
- <failure message="<%=h test_case.failure.message %>">
13
- <%=h test_case.failure.long_display %>
14
- </failure>
10
+ <failure message="<%=h test_case.failure.message %>"><%=h test_case.failure.long_display %></failure>
15
11
  % elsif test_case.omission
16
12
  <skipped message="<%=h test_case.omission.message %>"/>
17
13
  % elsif test_case.pending
18
14
  <skipped message="<%=h test_case.pending.message %>"/>
15
+ % end
16
+ % if test_case.stdout.size > 0
17
+ <system-out><%=h test_case.stdout.string %></system-out>
18
+ % end
19
+ % if test_case.stderr.size > 0
20
+ <system-err><%=h test_case.stderr.string %></system-err>
19
21
  % end
20
22
  </testcase>
21
23
  % end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test-unit-runner-junitxml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - OGAWA KenIchi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-06 00:00:00.000000000 Z
11
+ date: 2022-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler