trainer 0.8.1 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/trainer/options.rb +7 -1
- data/lib/trainer/test_parser.rb +20 -6
- data/lib/trainer/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e3f70b7df496d9fabd93521f0570b31c8246c65
|
4
|
+
data.tar.gz: 5b905c28029b08d09b4c76784669b422c971843c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6f99d9bc8d6c6cd851d40d576edb4bebb5d1aa8928642c78ac66981b928e6fd6e8f9d2a404109344dfa205ef03aae389ce18e46240a79e36f760a2d52e2f46ad
|
7
|
+
data.tar.gz: e4b784d44beedac35cb637e08bebf9e674f8f91f19b4afaed9d2cb81b1d53c3d89ed8525d70e12365b7375d3f3fe28ba567f8a2edfad29adff88913e78d2bf27
|
data/lib/trainer/options.rb
CHANGED
@@ -33,7 +33,13 @@ module Trainer
|
|
33
33
|
env_name: "TRAINER_FAIL_BUILD",
|
34
34
|
description: "Should this step stop the build if the tests fail? Set this to false if you're handling this with a test reporter",
|
35
35
|
is_string: false,
|
36
|
-
default_value: true)
|
36
|
+
default_value: true),
|
37
|
+
FastlaneCore::ConfigItem.new(key: :xcpretty_naming,
|
38
|
+
short_option: "-x",
|
39
|
+
env_name: "TRAINER_XCPRETTY_NAMING",
|
40
|
+
description: "Produces class name and test name identical to xcpretty naming in junit file",
|
41
|
+
is_string: false,
|
42
|
+
default_value: false)
|
37
43
|
]
|
38
44
|
end
|
39
45
|
end
|
data/lib/trainer/test_parser.rb
CHANGED
@@ -37,7 +37,7 @@ module Trainer
|
|
37
37
|
to_path = path.gsub(".plist", config[:extension])
|
38
38
|
end
|
39
39
|
|
40
|
-
tp = Trainer::TestParser.new(path)
|
40
|
+
tp = Trainer::TestParser.new(path, config)
|
41
41
|
File.write(to_path, tp.to_junit)
|
42
42
|
puts "Successfully generated '#{to_path}'"
|
43
43
|
|
@@ -46,7 +46,7 @@ module Trainer
|
|
46
46
|
return_hash
|
47
47
|
end
|
48
48
|
|
49
|
-
def initialize(path)
|
49
|
+
def initialize(path, config = {})
|
50
50
|
path = File.expand_path(path)
|
51
51
|
UI.user_error!("File not found at path '#{path}'") unless File.exist?(path)
|
52
52
|
|
@@ -55,7 +55,7 @@ module Trainer
|
|
55
55
|
return if self.raw_json["FormatVersion"].to_s.length.zero? # maybe that's a useless plist file
|
56
56
|
|
57
57
|
ensure_file_valid!
|
58
|
-
parse_content
|
58
|
+
parse_content(config[:xcpretty_naming])
|
59
59
|
end
|
60
60
|
|
61
61
|
# Returns the JUnit report as String
|
@@ -107,8 +107,21 @@ module Trainer
|
|
107
107
|
return tests
|
108
108
|
end
|
109
109
|
|
110
|
+
# Returns the test group and test name from the passed summary and test
|
111
|
+
# Pass xcpretty_naming = true to get the test naming aligned with xcpretty
|
112
|
+
def test_group_and_name(testable_summary, test, xcpretty_naming)
|
113
|
+
if xcpretty_naming
|
114
|
+
group = testable_summary["TargetName"] + "." + test["TestIdentifier"].split("/")[0..-2].join(".")
|
115
|
+
name = test["TestName"][0..-3]
|
116
|
+
else
|
117
|
+
group = test["TestIdentifier"].split("/")[0..-2].join(".")
|
118
|
+
name = test["TestName"]
|
119
|
+
end
|
120
|
+
return group, name
|
121
|
+
end
|
122
|
+
|
110
123
|
# Convert the Hashes and Arrays in something more useful
|
111
|
-
def parse_content
|
124
|
+
def parse_content(xcpretty_naming)
|
112
125
|
self.data = self.raw_json["TestableSummaries"].collect do |testable_summary|
|
113
126
|
summary_row = {
|
114
127
|
project_path: testable_summary["ProjectPath"],
|
@@ -116,10 +129,11 @@ module Trainer
|
|
116
129
|
test_name: testable_summary["TestName"],
|
117
130
|
duration: testable_summary["Tests"].map { |current_test| current_test["Duration"] }.inject(:+),
|
118
131
|
tests: unfold_tests(testable_summary["Tests"]).collect do |current_test|
|
132
|
+
test_group, test_name = test_group_and_name(testable_summary, current_test, xcpretty_naming)
|
119
133
|
current_row = {
|
120
134
|
identifier: current_test["TestIdentifier"],
|
121
|
-
|
122
|
-
|
135
|
+
test_group: test_group,
|
136
|
+
name: test_name,
|
123
137
|
object_class: current_test["TestObjectClass"],
|
124
138
|
status: current_test["TestStatus"],
|
125
139
|
guid: current_test["TestSummaryGUID"],
|
data/lib/trainer/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trainer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-04-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: plist
|
@@ -152,7 +152,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
152
152
|
version: '0'
|
153
153
|
requirements: []
|
154
154
|
rubyforge_project:
|
155
|
-
rubygems_version: 2.
|
155
|
+
rubygems_version: 2.5.2.3
|
156
156
|
signing_key:
|
157
157
|
specification_version: 4
|
158
158
|
summary: Convert xcodebuild plist files to JUnit reports
|