junit_model 0.1.0 → 0.1.1
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/.coveralls.yml +1 -0
- data/.travis.yml +2 -0
- data/README.md +1 -0
- data/exe/junit_merge +12 -0
- data/junit_model.gemspec +8 -5
- data/lib/junit_model.rb +2 -0
- data/lib/junit_model/cli/cli_merger.rb +23 -0
- data/lib/junit_model/cli/cli_parser.rb +40 -0
- data/lib/junit_model/merger.rb +1 -1
- data/lib/junit_model/version.rb +1 -1
- data/lib/junit_model/xml.rb +8 -2
- metadata +43 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e8c2b889357cd9b0bdf627c03467ff4503880f42
|
4
|
+
data.tar.gz: c8b0076148a797a632098e61350c3ef58df9d31f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 03052896a0b99f57cd00da88c28513b6670c628df0a2f6ad0240dccf353a9924ae1bb758d1a8ceb77ddcc94055c180d70d856acd31904d4fa6ee64362e93e2d9
|
7
|
+
data.tar.gz: 3af8922b6357c85d8b54bed9d88d924abcea38e7a10eda5decb279a195baa4376bbafa3c7b3397011834476be5fd19ec3e20666069c259dd8f26a3be6ab259bd
|
data/.coveralls.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
service_name: travis-ci
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
A nicer way to interact with JUnit xml files.
|
4
4
|
|
5
5
|
[](https://travis-ci.org/iainsmith/junit_model)
|
6
|
+
[](https://coveralls.io/github/iainsmith/junit_model?branch=master)
|
6
7
|
|
7
8
|
# Features
|
8
9
|
|
data/exe/junit_merge
ADDED
data/junit_model.gemspec
CHANGED
@@ -18,15 +18,18 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_dependency "xml-simple", "1.1
|
22
|
-
spec.add_dependency "builder"
|
21
|
+
spec.add_dependency "xml-simple", "~> 1.1"
|
22
|
+
spec.add_dependency "builder", "~> 3.2"
|
23
23
|
|
24
|
-
spec.add_development_dependency "bundler"
|
25
|
-
spec.add_development_dependency "rake"
|
26
|
-
spec.add_development_dependency "rspec"
|
24
|
+
spec.add_development_dependency "bundler"
|
25
|
+
spec.add_development_dependency "rake"
|
26
|
+
spec.add_development_dependency "rspec"
|
27
27
|
spec.add_development_dependency "guard-rspec"
|
28
28
|
spec.add_development_dependency "terminal-notifier"
|
29
29
|
spec.add_development_dependency "terminal-notifier-guard"
|
30
30
|
spec.add_development_dependency "pry-remote"
|
31
31
|
spec.add_development_dependency "guard-rubocop"
|
32
|
+
spec.add_development_dependency "coveralls"
|
33
|
+
|
34
|
+
spec.required_ruby_version = '>= 2.0'
|
32
35
|
end
|
data/lib/junit_model.rb
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
module JunitModel
|
2
|
+
module CLI
|
3
|
+
# Merge JUnit xml files from the command line
|
4
|
+
class Merger
|
5
|
+
def self.merge(options)
|
6
|
+
path_a = options.files[0]
|
7
|
+
path_b = options.files[1]
|
8
|
+
output_path = options.output_path
|
9
|
+
|
10
|
+
test_a = JunitModel::Parser.read_path(path_a)
|
11
|
+
test_b = JunitModel::Parser.read_path(path_b)
|
12
|
+
|
13
|
+
merged_tests = JunitModel::Merger.merge(test_a, test_b)
|
14
|
+
puts "Merged #{path_a} and #{path_b} to #{output_path}"
|
15
|
+
puts "Tests:#{merged_tests.tests} Failures:#{merged_tests.failure_count} Suites:#{merged_tests.test_suites.count}"
|
16
|
+
xml = merged_tests.to_xml
|
17
|
+
File.open(output_path, 'w') do |file|
|
18
|
+
file.write(xml)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'optparse'
|
2
|
+
|
3
|
+
module JunitModel
|
4
|
+
module CLI
|
5
|
+
# The options to be used throughout the CLI Module
|
6
|
+
class Options
|
7
|
+
attr_accessor :files, :output_path
|
8
|
+
def initialize
|
9
|
+
self.files = []
|
10
|
+
self.output_path = './merged_tests.xml'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
# Parse CLI::Options from ARGV
|
15
|
+
class Parser
|
16
|
+
def self.parse(argv)
|
17
|
+
options = Options.new
|
18
|
+
opt_parser = OptionParser.new do |opts|
|
19
|
+
opts.banner = 'Usage: example.rb [options]'
|
20
|
+
|
21
|
+
opts.on('-o', '--output OUTPUT', String, 'Output') do |n|
|
22
|
+
options.output_path = n
|
23
|
+
end
|
24
|
+
|
25
|
+
opts.on('-h', '--help', 'Prints this help') do
|
26
|
+
puts opts
|
27
|
+
exit
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
opt_parser.order(argv) do |file|
|
32
|
+
options.files << file unless file.nil?
|
33
|
+
end
|
34
|
+
|
35
|
+
opt_parser.parse(argv)
|
36
|
+
options
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/junit_model/merger.rb
CHANGED
data/lib/junit_model/version.rb
CHANGED
data/lib/junit_model/xml.rb
CHANGED
@@ -8,13 +8,19 @@ module JunitModel
|
|
8
8
|
builder.instruct! :xml, version: '1.0', encoding: 'UTF-8'
|
9
9
|
builder.testsuites(tests: result.test_count, failures: result.failures_count) do |suite_builder|
|
10
10
|
result.test_suites.each do |suite|
|
11
|
-
suite_builder.testsuite(
|
11
|
+
suite_builder.testsuite(suite_hash(suite)) do |test_builder|
|
12
12
|
suite.test_cases.each do |test_case|
|
13
|
-
test_builder.testcase(
|
13
|
+
test_builder.testcase(test_case.to_h)
|
14
14
|
end
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
19
|
+
|
20
|
+
def self.suite_hash(suite)
|
21
|
+
suite_hash = suite.to_h
|
22
|
+
suite_hash.delete(:testcase)
|
23
|
+
suite_hash
|
24
|
+
end
|
19
25
|
end
|
20
26
|
end
|
metadata
CHANGED
@@ -1,85 +1,85 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: junit_model
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Iain Smith
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: xml-simple
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.1
|
19
|
+
version: '1.1'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.1
|
26
|
+
version: '1.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: builder
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '3.2'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '3.2'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: guard-rspec
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -150,13 +150,29 @@ dependencies:
|
|
150
150
|
- - ">="
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: coveralls
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
153
167
|
description:
|
154
168
|
email:
|
155
169
|
- iain@mountain23.com
|
156
|
-
executables:
|
170
|
+
executables:
|
171
|
+
- junit_merge
|
157
172
|
extensions: []
|
158
173
|
extra_rdoc_files: []
|
159
174
|
files:
|
175
|
+
- ".coveralls.yml"
|
160
176
|
- ".gitignore"
|
161
177
|
- ".rspec"
|
162
178
|
- ".rubocop.yml"
|
@@ -169,8 +185,11 @@ files:
|
|
169
185
|
- Rakefile
|
170
186
|
- bin/console
|
171
187
|
- bin/setup
|
188
|
+
- exe/junit_merge
|
172
189
|
- junit_model.gemspec
|
173
190
|
- lib/junit_model.rb
|
191
|
+
- lib/junit_model/cli/cli_merger.rb
|
192
|
+
- lib/junit_model/cli/cli_parser.rb
|
174
193
|
- lib/junit_model/merger.rb
|
175
194
|
- lib/junit_model/models.rb
|
176
195
|
- lib/junit_model/parser.rb
|
@@ -188,7 +207,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
188
207
|
requirements:
|
189
208
|
- - ">="
|
190
209
|
- !ruby/object:Gem::Version
|
191
|
-
version: '0'
|
210
|
+
version: '2.0'
|
192
211
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
193
212
|
requirements:
|
194
213
|
- - ">="
|
@@ -201,4 +220,3 @@ signing_key:
|
|
201
220
|
specification_version: 4
|
202
221
|
summary: A nicer way to deal with JUnit style xml
|
203
222
|
test_files: []
|
204
|
-
has_rdoc:
|