minitest-junit_formatter 0.2.0 → 0.3.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 +4 -4
- data/.github/workflows/main.yml +9 -10
- data/.gitignore +2 -0
- data/Gemfile +8 -0
- data/lib/minitest/junit_formatter/version.rb +1 -1
- data/lib/minitest/junit_formatter/xml_nokogiri.rb +4 -1
- data/lib/minitest/junit_formatter/xml_rexml.rb +4 -1
- data/lib/minitest/junit_formatter.rb +7 -0
- data/minitest-junit_formatter.gemspec +4 -3
- data/test/junit_plugin_test.rb +1 -2
- data/test/reporter_test.rb +19 -5
- data/test/test_helper.rb +5 -0
- data/test/testcase_formatter_test.rb +2 -2
- metadata +28 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 48efdf67a0c1a27752128640d319129d3575a5212d5a74def0ae6dfecb27b58f
|
|
4
|
+
data.tar.gz: 66bca0a2dd39f15b4d2b9e24bca3baca67e51ef019857b1675e94b1b84961d07
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 58548caa1d3bc7b99cad7d3a5bb834aea49cb1f47770dde967146fc524589bf9c4ae1e172f234f6b8629880b3fbd14992413f5721ed0e55b649d5389c9405e8f
|
|
7
|
+
data.tar.gz: ac6d1f4c2c04bab8574acedc4020b4f2c6b20f5ef198b87be0ecbbb4a326fac3fea0fb1e5402db5bfa915f70a95ef9381a893df98f633cfcff670c9ef7999937
|
data/.github/workflows/main.yml
CHANGED
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
name: Main
|
|
2
2
|
on:
|
|
3
3
|
push:
|
|
4
|
-
branches: [release]
|
|
4
|
+
branches: [main, release]
|
|
5
5
|
pull_request:
|
|
6
|
-
|
|
6
|
+
workflow_dispatch:
|
|
7
7
|
|
|
8
8
|
jobs:
|
|
9
9
|
tests:
|
|
10
|
-
name:
|
|
10
|
+
name: Ruby ${{ matrix.ruby }} / Minitest ${{ matrix.minitest }}
|
|
11
11
|
runs-on: ubuntu-latest
|
|
12
12
|
strategy:
|
|
13
13
|
fail-fast: false
|
|
14
14
|
matrix:
|
|
15
|
-
ruby: ["2
|
|
15
|
+
ruby: ["3.2", "3.3", "3.4", "jruby-10.0", "jruby-10.1"]
|
|
16
|
+
minitest: ["5", "6"]
|
|
17
|
+
env:
|
|
18
|
+
MINITEST_VERSION: ${{ matrix.minitest }}
|
|
16
19
|
|
|
17
20
|
steps:
|
|
18
21
|
- name: Checkout code
|
|
@@ -23,12 +26,8 @@ jobs:
|
|
|
23
26
|
with:
|
|
24
27
|
ruby-version: ${{ matrix.ruby }}
|
|
25
28
|
bundler-cache: true
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
run: bundle lock
|
|
29
|
-
|
|
30
|
-
- name: Bundle
|
|
31
|
-
run: bundle check || bundle install
|
|
29
|
+
# Separate gem caches per Minitest major version.
|
|
30
|
+
cache-version: minitest-${{ matrix.minitest }}
|
|
32
31
|
|
|
33
32
|
- name: Run tests
|
|
34
33
|
run: bundle exec rake test
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
|
@@ -2,3 +2,11 @@ source 'https://rubygems.org'
|
|
|
2
2
|
|
|
3
3
|
# Specify your gem's dependencies in minitest-junit.gemspec
|
|
4
4
|
gemspec
|
|
5
|
+
|
|
6
|
+
# Test against a specific Minitest major version, e.g. MINITEST_VERSION=5
|
|
7
|
+
# Minitest 6 requires Ruby 3.2+.
|
|
8
|
+
minitest_version = ENV.fetch('MINITEST_VERSION') { RUBY_VERSION >= '3.2' ? '6' : '5' }
|
|
9
|
+
gem 'minitest', "~> #{minitest_version}.0"
|
|
10
|
+
|
|
11
|
+
# Minitest 6 extracted minitest/mock into its own gem.
|
|
12
|
+
gem 'minitest-mock' if minitest_version.to_i >= 6
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
module Minitest
|
|
2
2
|
module JunitFormatter
|
|
3
3
|
class RexmlDocument
|
|
4
|
+
# Emit double-quoted attributes, matching the Nokogiri backend.
|
|
5
|
+
CONTEXT = { attribute_quote: :quote }.freeze
|
|
6
|
+
|
|
4
7
|
def document
|
|
5
8
|
doc = REXML::Document.new
|
|
6
9
|
doc << REXML::XMLDecl.new('1.0', 'UTF-8')
|
|
@@ -8,7 +11,7 @@ module Minitest
|
|
|
8
11
|
end
|
|
9
12
|
|
|
10
13
|
def element(name)
|
|
11
|
-
REXML::Element.new(name)
|
|
14
|
+
REXML::Element.new(name, nil, CONTEXT)
|
|
12
15
|
end
|
|
13
16
|
|
|
14
17
|
def set_attr(el, name, value)
|
|
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
|
|
|
8
8
|
spec.version = Minitest::JunitFormatter::VERSION
|
|
9
9
|
spec.authors = ["Jesse Chavez", "Allan Espinosa"]
|
|
10
10
|
spec.email = ["jesse.chavez.jp@gmail.com"]
|
|
11
|
-
spec.summary = "Junit report formatter for Minitest
|
|
12
|
-
spec.description = "Junit report formatter for Minitest
|
|
11
|
+
spec.summary = "Junit report formatter for Minitest 5 and 6"
|
|
12
|
+
spec.description = "Junit report formatter for Minitest 5 and 6"
|
|
13
13
|
spec.homepage = "https://github.com/JesseChavez/minitest-junit_formatter"
|
|
14
14
|
spec.license = "MIT"
|
|
15
15
|
|
|
@@ -18,10 +18,11 @@ 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', '
|
|
21
|
+
spec.add_dependency 'minitest', '>= 5.11', '< 7'
|
|
22
22
|
|
|
23
23
|
spec.add_development_dependency 'bundler'
|
|
24
24
|
spec.add_development_dependency 'nokogiri'
|
|
25
25
|
spec.add_development_dependency 'rake', '~> 13'
|
|
26
|
+
spec.add_development_dependency 'rexml'
|
|
26
27
|
spec.add_development_dependency 'rubocop', '~> 1'
|
|
27
28
|
end
|
data/test/junit_plugin_test.rb
CHANGED
data/test/reporter_test.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
require_relative 'test_helper'
|
|
2
2
|
require 'stringio'
|
|
3
3
|
require 'time'
|
|
4
4
|
require 'nokogiri'
|
|
@@ -13,10 +13,22 @@ class ReporterTest < Minitest::Test
|
|
|
13
13
|
|
|
14
14
|
reporter.report
|
|
15
15
|
|
|
16
|
-
assert_match(
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
assert_match(/\A<\?xml version="1.0" encoding="UTF-8"\?>\n/, reporter.output)
|
|
17
|
+
|
|
18
|
+
# Parse rather than match text: JRuby's Nokogiri orders attributes and whitespace differently
|
|
19
|
+
parsed_report = Nokogiri::XML(reporter.output)
|
|
20
|
+
assert_equal 'testsuites', parsed_report.root.name
|
|
21
|
+
testsuites = parsed_report.root.element_children
|
|
22
|
+
assert_equal ['testsuite'], testsuites.map(&:name)
|
|
23
|
+
|
|
24
|
+
testsuite = testsuites.first
|
|
25
|
+
assert_empty testsuite.children
|
|
26
|
+
assert_equal(
|
|
27
|
+
{ 'name' => 'minitest', 'tests' => '0', 'skipped' => '0', 'failures' => '0', 'errors' => '0', 'time' => '0.000000' },
|
|
28
|
+
testsuite.to_h.reject { |key, _| %w[timestamp hostname].include?(key) }
|
|
19
29
|
)
|
|
30
|
+
refute_empty testsuite['timestamp']
|
|
31
|
+
refute_empty testsuite['hostname']
|
|
20
32
|
end
|
|
21
33
|
|
|
22
34
|
# NOTE: This test will generate a temp file: "test/tmp/report.xml"
|
|
@@ -35,9 +47,11 @@ class ReporterTest < Minitest::Test
|
|
|
35
47
|
reporter = create_reporter
|
|
36
48
|
|
|
37
49
|
results = do_formatting_test(reporter, count: rand(100), cause_failures: 0)
|
|
50
|
+
parsed_report = Nokogiri::XML(reporter.output)
|
|
38
51
|
|
|
39
52
|
results.each do |result|
|
|
40
|
-
|
|
53
|
+
assert parsed_report.at_xpath("//testcase[@classname='FakeTestName' and @name='#{result.name}']"),
|
|
54
|
+
"expected a testcase for #{result.name}"
|
|
41
55
|
end
|
|
42
56
|
end
|
|
43
57
|
|
data/test/test_helper.rb
ADDED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
require_relative 'test_helper'
|
|
2
2
|
require 'stringio'
|
|
3
3
|
require 'time'
|
|
4
4
|
|
|
@@ -31,7 +31,7 @@ class TestCaseFormatter < Minitest::Test
|
|
|
31
31
|
|
|
32
32
|
reporter.report
|
|
33
33
|
|
|
34
|
-
assert_match(/<skipped message="[^<>]+"
|
|
34
|
+
assert_match(/<skipped message="[^<>]+"(\/>|><\/skipped>)\n\s+<\/testcase>\n\s*<\/testsuite>\n/, reporter.output)
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
def test_failing_tests_creates_failure_tag
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: minitest-junit_formatter
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jesse Chavez
|
|
@@ -14,16 +14,22 @@ dependencies:
|
|
|
14
14
|
name: minitest
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - "
|
|
17
|
+
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
19
|
version: '5.11'
|
|
20
|
+
- - "<"
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: '7'
|
|
20
23
|
type: :runtime
|
|
21
24
|
prerelease: false
|
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
26
|
requirements:
|
|
24
|
-
- - "
|
|
27
|
+
- - ">="
|
|
25
28
|
- !ruby/object:Gem::Version
|
|
26
29
|
version: '5.11'
|
|
30
|
+
- - "<"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '7'
|
|
27
33
|
- !ruby/object:Gem::Dependency
|
|
28
34
|
name: bundler
|
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -66,6 +72,20 @@ dependencies:
|
|
|
66
72
|
- - "~>"
|
|
67
73
|
- !ruby/object:Gem::Version
|
|
68
74
|
version: '13'
|
|
75
|
+
- !ruby/object:Gem::Dependency
|
|
76
|
+
name: rexml
|
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '0'
|
|
82
|
+
type: :development
|
|
83
|
+
prerelease: false
|
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - ">="
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: '0'
|
|
69
89
|
- !ruby/object:Gem::Dependency
|
|
70
90
|
name: rubocop
|
|
71
91
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -80,7 +100,7 @@ dependencies:
|
|
|
80
100
|
- - "~>"
|
|
81
101
|
- !ruby/object:Gem::Version
|
|
82
102
|
version: '1'
|
|
83
|
-
description: Junit report formatter for Minitest
|
|
103
|
+
description: Junit report formatter for Minitest 5 and 6
|
|
84
104
|
email:
|
|
85
105
|
- jesse.chavez.jp@gmail.com
|
|
86
106
|
executables: []
|
|
@@ -102,6 +122,7 @@ files:
|
|
|
102
122
|
- test/.rubocop.yml
|
|
103
123
|
- test/junit_plugin_test.rb
|
|
104
124
|
- test/reporter_test.rb
|
|
125
|
+
- test/test_helper.rb
|
|
105
126
|
- test/testcase_formatter_test.rb
|
|
106
127
|
- test/tmp/.keep
|
|
107
128
|
homepage: https://github.com/JesseChavez/minitest-junit_formatter
|
|
@@ -122,12 +143,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
122
143
|
- !ruby/object:Gem::Version
|
|
123
144
|
version: '0'
|
|
124
145
|
requirements: []
|
|
125
|
-
rubygems_version: 3.
|
|
146
|
+
rubygems_version: 3.7.2
|
|
126
147
|
specification_version: 4
|
|
127
|
-
summary: Junit report formatter for Minitest
|
|
148
|
+
summary: Junit report formatter for Minitest 5 and 6
|
|
128
149
|
test_files:
|
|
129
150
|
- test/.rubocop.yml
|
|
130
151
|
- test/junit_plugin_test.rb
|
|
131
152
|
- test/reporter_test.rb
|
|
153
|
+
- test/test_helper.rb
|
|
132
154
|
- test/testcase_formatter_test.rb
|
|
133
155
|
- test/tmp/.keep
|