mobile_metrics 0.0.2 → 0.0.3
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/Gemfile.lock +3 -1
- data/lib/mobile_metrics/junit.rb +82 -0
- data/lib/mobile_metrics/version.rb +1 -1
- data/lib/mobile_metrics.rb +1 -0
- data/mobile_metrics.gemspec +2 -0
- metadata +18 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 30ed2b68c154f8901ce362daf0dd744ce7b0d325fa88dc9294af55b4b0bfa7e1
|
4
|
+
data.tar.gz: a2993af8b7d748b55d40a9478b37628e75126fdfdc4f1a082c50b43580f131ea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0bed566a44e5080bb5b18a649c90c193dd785a54720c940e1a0ec3ce7e661523eadc7f1f4c6815bed24808d728f1b317597539d9b47bcaea1ff588bb94d6523d
|
7
|
+
data.tar.gz: df938aec687c837a8b7ded3dfb193f6738b95083dc89a2f2e40890e2ed9a02ebaa337dab3e0812ad3951aec540148be68f55410d009f7eb0eb8a46d3a50bd1ce
|
data/Gemfile.lock
CHANGED
@@ -0,0 +1,82 @@
|
|
1
|
+
|
2
|
+
module MobileMetrics
|
3
|
+
|
4
|
+
# Adapted from: https://github.com/orta/danger-junit/blob/master/lib/junit/plugin.rb
|
5
|
+
class JunitParser
|
6
|
+
# All the tests for introspection
|
7
|
+
#
|
8
|
+
# @return [Array<Ox::Element>]
|
9
|
+
attr_accessor :tests
|
10
|
+
|
11
|
+
# An array of XML elements that represent passed tests.
|
12
|
+
#
|
13
|
+
# @return [Array<Ox::Element>]
|
14
|
+
attr_accessor :passes
|
15
|
+
|
16
|
+
# An array of XML elements that represent failed tests.
|
17
|
+
#
|
18
|
+
# @return [Array<Ox::Element>]
|
19
|
+
attr_accessor :failures
|
20
|
+
|
21
|
+
# An array of XML elements that represent passed tests.
|
22
|
+
#
|
23
|
+
# @return [Array<Ox::Element>]
|
24
|
+
attr_accessor :errors
|
25
|
+
|
26
|
+
# An array of XML elements that represent skipped tests.
|
27
|
+
#
|
28
|
+
# @return [Array<Ox::Element>]
|
29
|
+
attr_accessor :skipped
|
30
|
+
|
31
|
+
# An attribute to make the plugin show a warning on skipped tests.
|
32
|
+
#
|
33
|
+
# @return [Bool]
|
34
|
+
attr_accessor :show_skipped_tests
|
35
|
+
|
36
|
+
# An array of symbols that become the columns of your tests,
|
37
|
+
# if `nil`, the default, it will be all of the attributes.
|
38
|
+
#
|
39
|
+
# @return [Array<Symbol>]
|
40
|
+
attr_accessor :headers
|
41
|
+
|
42
|
+
# Parses an XML file, which fills all the attributes,
|
43
|
+
# will `raise` for errors
|
44
|
+
# @return [void]
|
45
|
+
def parse(file)
|
46
|
+
require 'ox'
|
47
|
+
raise "No JUnit file was found at #{file}" unless File.exist? file
|
48
|
+
|
49
|
+
xml_string = File.read(file)
|
50
|
+
@doc = Ox.parse(xml_string)
|
51
|
+
|
52
|
+
suite_root = @doc.nodes.first.value == 'testsuites' ? @doc.nodes.first : @doc
|
53
|
+
@tests = suite_root.nodes.map(&:nodes).flatten.select { |node| node.kind_of?(Ox::Element) && node.value == 'testcase' }
|
54
|
+
|
55
|
+
failed_suites = suite_root.nodes.select { |suite| suite[:failures].to_i > 0 || suite[:errors].to_i > 0 }
|
56
|
+
failed_tests = failed_suites.map(&:nodes).flatten.select { |node| node.kind_of?(Ox::Element) && node.value == 'testcase' }
|
57
|
+
|
58
|
+
@failures = failed_tests.select do |test|
|
59
|
+
test.nodes.count > 0
|
60
|
+
end.select do |test|
|
61
|
+
node = test.nodes.first
|
62
|
+
node.kind_of?(Ox::Element) && node.value == 'failure'
|
63
|
+
end
|
64
|
+
|
65
|
+
@errors = failed_tests.select do |test|
|
66
|
+
test.nodes.count > 0
|
67
|
+
end.select do |test|
|
68
|
+
node = test.nodes.first
|
69
|
+
node.kind_of?(Ox::Element) && node.value == 'error'
|
70
|
+
end
|
71
|
+
|
72
|
+
@skipped = tests.select do |test|
|
73
|
+
test.nodes.count > 0
|
74
|
+
end.select do |test|
|
75
|
+
node = test.nodes.first
|
76
|
+
node.kind_of?(Ox::Element) && node.value == 'skipped'
|
77
|
+
end
|
78
|
+
|
79
|
+
@passes = tests - @failures - @errors - @skipped
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
data/lib/mobile_metrics.rb
CHANGED
data/mobile_metrics.gemspec
CHANGED
@@ -18,6 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.bindir = "exe"
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ["lib"]
|
21
|
+
|
22
|
+
spec.add_runtime_dependency 'ox', '~> 2.0'
|
21
23
|
|
22
24
|
spec.add_development_dependency "bundler", "~> 1.16"
|
23
25
|
spec.add_development_dependency "rake", "~> 10.0"
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mobile_metrics
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- dbeard
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-11-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: ox
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -68,6 +82,7 @@ files:
|
|
68
82
|
- bin/console
|
69
83
|
- bin/setup
|
70
84
|
- lib/mobile_metrics.rb
|
85
|
+
- lib/mobile_metrics/junit.rb
|
71
86
|
- lib/mobile_metrics/version.rb
|
72
87
|
- mobile_metrics.gemspec
|
73
88
|
homepage:
|
@@ -89,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
89
104
|
version: '0'
|
90
105
|
requirements: []
|
91
106
|
rubyforge_project:
|
92
|
-
rubygems_version: 2.
|
107
|
+
rubygems_version: 2.7.7
|
93
108
|
signing_key:
|
94
109
|
specification_version: 4
|
95
110
|
summary: Mobile logging format library
|