minitest-junit 0.1.0 → 0.4.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 +5 -5
- data/README.md +1 -0
- data/Rakefile +1 -0
- data/lib/minitest/junit/version.rb +1 -1
- data/lib/minitest/junit.rb +14 -8
- data/lib/minitest/junit_plugin.rb +7 -4
- data/minitest-junit.gemspec +2 -2
- data/test/junit_plugin_test.rb +8 -0
- data/test/reporter_test.rb +1 -1
- data/test/testcase_formatter_test.rb +19 -8
- metadata +16 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0fa66307fd2fdfd6109450defbb4413afdf292d773222c93a04622680ebb6c37
|
4
|
+
data.tar.gz: 103ddd1223b0d692972416eb0551e072f06734658069906a986f9d0c1975a16f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c4dabfdcf0a30f2dc9d858962444d88fa445983404189b3fce805374f23d64c2c3ed43e044f5275bb68446ffe7b72365fc9e2d8bb82fcab58d9320103204a24
|
7
|
+
data.tar.gz: 5777cfd69357a6855de6e5609d8e1c5cc6a227ae670fe4abaef56ce28d10e9b579e1aeef0022cc5dc00731cd5bb31829b22f6c8a14b232cbf25df43eb15d3122
|
data/README.md
CHANGED
data/Rakefile
CHANGED
data/lib/minitest/junit.rb
CHANGED
@@ -7,9 +7,10 @@ module Minitest
|
|
7
7
|
module Junit
|
8
8
|
# :nodoc:
|
9
9
|
class Reporter
|
10
|
-
def initialize(io)
|
10
|
+
def initialize(io, options)
|
11
11
|
@io = io
|
12
12
|
@results = []
|
13
|
+
@options = options
|
13
14
|
end
|
14
15
|
|
15
16
|
def passed?
|
@@ -32,10 +33,13 @@ module Minitest
|
|
32
33
|
xml = Builder::XmlMarkup.new
|
33
34
|
xml.testcase classname: format_class(result), name: format_name(result),
|
34
35
|
time: result.time, assertions: result.assertions do |t|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
36
|
+
if result.skipped?
|
37
|
+
t.skipped message: result
|
38
|
+
else
|
39
|
+
result.failures.each do |failure|
|
40
|
+
type = classify failure
|
41
|
+
xml.tag! type, format_backtrace(failure), message: result
|
42
|
+
end
|
39
43
|
end
|
40
44
|
end
|
41
45
|
xml.target!
|
@@ -56,12 +60,14 @@ module Minitest
|
|
56
60
|
end
|
57
61
|
|
58
62
|
def format_class(result)
|
59
|
-
|
60
|
-
|
63
|
+
if @options[:junit_jenkins]
|
64
|
+
result.class.to_s.gsub(/(.*)::(.*)/, '\1.\2')
|
65
|
+
else
|
66
|
+
result.class
|
67
|
+
end
|
61
68
|
end
|
62
69
|
|
63
70
|
def format_name(result)
|
64
|
-
result.name.sub(/^test_/, '').gsub('_', ' ')
|
65
71
|
result.name
|
66
72
|
end
|
67
73
|
end
|
@@ -10,12 +10,15 @@ module Minitest
|
|
10
10
|
' Defaults to report.xml' do |out|
|
11
11
|
options[:junit_filename] = out
|
12
12
|
end
|
13
|
+
opts.on '--junit-jenkins', 'Sanitize test names for Jenkins display' do
|
14
|
+
options[:junit_jenkins] = true
|
15
|
+
end
|
13
16
|
end
|
14
17
|
|
15
18
|
def self.plugin_junit_init(options)
|
16
|
-
return unless options
|
17
|
-
file_klass = options
|
18
|
-
io = file_klass.new options
|
19
|
-
reporter << Junit::Reporter.new(io
|
19
|
+
return unless options.delete :junit
|
20
|
+
file_klass = options.delete(:file_klass) || File
|
21
|
+
io = file_klass.new options.delete(:junit_filename) || 'report.xml', 'w'
|
22
|
+
reporter << Junit::Reporter.new(io, options)
|
20
23
|
end
|
21
24
|
end
|
data/minitest-junit.gemspec
CHANGED
@@ -18,10 +18,10 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(/^(test)\//)
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_dependency 'minitest', '~> 5.0'
|
21
|
+
spec.add_dependency 'minitest', '~> 5.0', '< 5.11'
|
22
22
|
spec.add_dependency 'builder', '~> 3.2'
|
23
23
|
|
24
|
-
spec.add_development_dependency 'bundler'
|
24
|
+
spec.add_development_dependency 'bundler'
|
25
25
|
spec.add_development_dependency 'rake', '~> 10.3.2'
|
26
26
|
spec.add_development_dependency 'rubocop', '~> 0.24.1'
|
27
27
|
end
|
data/test/junit_plugin_test.rb
CHANGED
@@ -72,4 +72,12 @@ class PluginTest < Minitest::Test
|
|
72
72
|
|
73
73
|
assert_equal 'somefile.xml', options[:junit_filename]
|
74
74
|
end
|
75
|
+
|
76
|
+
def test_jenkins_sanitization_is_specified_by_a_flag
|
77
|
+
opts = OptionParser.new
|
78
|
+
options = {}
|
79
|
+
Minitest.plugin_junit_options opts, options
|
80
|
+
opts.parse('--junit-jenkins')
|
81
|
+
assert options[:junit_jenkins]
|
82
|
+
end
|
75
83
|
end
|
data/test/reporter_test.rb
CHANGED
@@ -20,7 +20,7 @@ class TestCaseFormatter < Minitest::Test
|
|
20
20
|
|
21
21
|
reporter.report
|
22
22
|
|
23
|
-
assert_match(/<skipped
|
23
|
+
assert_match(/<skipped message="[^<>]+"\/><\/testcase>\n<\/testsuite>\n/, reporter.output)
|
24
24
|
end
|
25
25
|
|
26
26
|
def test_failing_tests_creates_failure_tag
|
@@ -45,6 +45,16 @@ class TestCaseFormatter < Minitest::Test
|
|
45
45
|
assert_match(/<error/, reporter.output)
|
46
46
|
end
|
47
47
|
|
48
|
+
def test_jenkins_sanitizer_uses_modules_as_packages
|
49
|
+
test = create_test_result 'FirstModule::SecondModule::TestClass'
|
50
|
+
reporter = create_reporter junit_jenkins: true
|
51
|
+
reporter.record test
|
52
|
+
|
53
|
+
reporter.report
|
54
|
+
|
55
|
+
assert_match 'FirstModule::SecondModule.TestClass', reporter.output
|
56
|
+
end
|
57
|
+
|
48
58
|
private
|
49
59
|
|
50
60
|
def create_error(klass)
|
@@ -53,11 +63,12 @@ class TestCaseFormatter < Minitest::Test
|
|
53
63
|
e
|
54
64
|
end
|
55
65
|
|
56
|
-
def create_test_result
|
57
|
-
test = Minitest::Test
|
58
|
-
|
59
|
-
|
60
|
-
|
66
|
+
def create_test_result(name = 'ATestClass')
|
67
|
+
test = Class.new Minitest::Test do
|
68
|
+
define_method 'class' do
|
69
|
+
name
|
70
|
+
end
|
71
|
+
end.new 'test_method_name'
|
61
72
|
test.time = a_number
|
62
73
|
test.assertions = a_number
|
63
74
|
test
|
@@ -67,9 +78,9 @@ class TestCaseFormatter < Minitest::Test
|
|
67
78
|
rand(100)
|
68
79
|
end
|
69
80
|
|
70
|
-
def create_reporter
|
81
|
+
def create_reporter(options = {})
|
71
82
|
io = StringIO.new ''
|
72
|
-
reporter = Minitest::Junit::Reporter.new io
|
83
|
+
reporter = Minitest::Junit::Reporter.new io, options
|
73
84
|
def reporter.output
|
74
85
|
@io.string
|
75
86
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest-junit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Allan Espinosa
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 1980-01-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -17,6 +17,9 @@ dependencies:
|
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '5.0'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '5.11'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -24,6 +27,9 @@ dependencies:
|
|
24
27
|
- - "~>"
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '5.0'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '5.11'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: builder
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -42,16 +48,16 @@ dependencies:
|
|
42
48
|
name: bundler
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
44
50
|
requirements:
|
45
|
-
- - "
|
51
|
+
- - ">="
|
46
52
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
53
|
+
version: '0'
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
51
57
|
requirements:
|
52
|
-
- - "
|
58
|
+
- - ">="
|
53
59
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
60
|
+
version: '0'
|
55
61
|
- !ruby/object:Gem::Dependency
|
56
62
|
name: rake
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -104,7 +110,7 @@ homepage: http://github.com/aespinosa/minitest-junit
|
|
104
110
|
licenses:
|
105
111
|
- MIT
|
106
112
|
metadata: {}
|
107
|
-
post_install_message:
|
113
|
+
post_install_message:
|
108
114
|
rdoc_options: []
|
109
115
|
require_paths:
|
110
116
|
- lib
|
@@ -119,9 +125,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
119
125
|
- !ruby/object:Gem::Version
|
120
126
|
version: '0'
|
121
127
|
requirements: []
|
122
|
-
|
123
|
-
|
124
|
-
signing_key:
|
128
|
+
rubygems_version: 3.2.26
|
129
|
+
signing_key:
|
125
130
|
specification_version: 4
|
126
131
|
summary: Junit reporter for Minitest ~> 5.0
|
127
132
|
test_files:
|