test-unit-runner-junitxml 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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