fastlane-plugin-test_center 2.4.4 → 2.5.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
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b25348474cad13861fdf494fcb209f6c9597b924
|
|
4
|
+
data.tar.gz: 11b9e836b847fcff85565fae546957e6d82f78eb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b8507c18d5c97b64cfed282105398a00a343f4bb259a1daba793a5229de2a0e838a230d1542dd174bfd3ef2d79ca57678bc538c9b496b88d855959899066ae93
|
|
7
|
+
data.tar.gz: 7bfed07d1fd5a1cf130016adf9c1318166ae24aa8313c2f61d1be464fe20c7c13d6411a951b77a56a2c3a915d126748c23bf49bb2fef1a4dbabf85345f0fad36
|
data/README.md
CHANGED
|
@@ -23,6 +23,7 @@ This fastlane plugin includes the following actions:
|
|
|
23
23
|
- `suppress_tests`: suppresses specific tests in a specific or all Xcode Schemes in a given project
|
|
24
24
|
- `suppressed_tests`: retrieves a list of tests that are suppressed in a specific or all Xcode Schemes in a project
|
|
25
25
|
- `tests_from_junit`: retrieves the failing and passing tests as reported in a junit xml file
|
|
26
|
+
- `tests_from_xctestrun`: retrieves all of the tests from xctest bundles referenced by the xctestrun file
|
|
26
27
|
- `collate_junit_reports`: collects and correctly organizes junit reports from multiple test passes
|
|
27
28
|
|
|
28
29
|
## Example
|
|
@@ -4,6 +4,7 @@ module Fastlane
|
|
|
4
4
|
require 'shellwords'
|
|
5
5
|
require 'xctest_list'
|
|
6
6
|
require 'plist'
|
|
7
|
+
require 'pry-byebug'
|
|
7
8
|
|
|
8
9
|
class MultiScanAction < Action
|
|
9
10
|
def self.run(params)
|
|
@@ -129,19 +130,8 @@ module Fastlane
|
|
|
129
130
|
end
|
|
130
131
|
|
|
131
132
|
def self.xctestrun_tests(xctestrun_path)
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
tests = []
|
|
135
|
-
xctestrun.each do |testable_name, xctestrun_config|
|
|
136
|
-
test_identifiers = XCTestList.tests(xctest_bundle_path(xctestrun_rootpath, xctestrun_config))
|
|
137
|
-
if xctestrun_config.key?('SkipTestIdentifiers')
|
|
138
|
-
test_identifiers.reject! { |test_identifier| xctestrun_config['SkipTestIdentifiers'].include?(test_identifier) }
|
|
139
|
-
end
|
|
140
|
-
tests += test_identifiers.map do |test_identifier|
|
|
141
|
-
"#{testable_name.shellescape}/#{test_identifier}"
|
|
142
|
-
end
|
|
143
|
-
end
|
|
144
|
-
tests
|
|
133
|
+
tests_across_testables = other_action.tests_from_xctestrun(xctestrun: xctestrun_path)
|
|
134
|
+
tests_across_testables.values.flatten
|
|
145
135
|
end
|
|
146
136
|
|
|
147
137
|
def self.xctest_bundle_path(xctestrun_rootpath, xctestrun_config)
|
|
@@ -151,7 +141,7 @@ module Fastlane
|
|
|
151
141
|
end
|
|
152
142
|
|
|
153
143
|
def self.testrun_path(scan_options)
|
|
154
|
-
Dir.glob("#{scan_options[:derived_data_path]}/Build/Products
|
|
144
|
+
Dir.glob("#{scan_options[:derived_data_path]}/Build/Products/*.xctestrun").first
|
|
155
145
|
end
|
|
156
146
|
|
|
157
147
|
def self.test_products_path(derived_data_path)
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
module Fastlane
|
|
2
|
+
module Actions
|
|
3
|
+
class TestsFromXctestrunAction < Action
|
|
4
|
+
def self.run(params)
|
|
5
|
+
return xctestrun_tests(params[:xctestrun])
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def self.xctestrun_tests(xctestrun_path)
|
|
9
|
+
xctestrun = Plist.parse_xml(xctestrun_path)
|
|
10
|
+
xctestrun_rootpath = File.dirname(xctestrun_path)
|
|
11
|
+
tests = Hash.new([])
|
|
12
|
+
xctestrun.each do |testable_name, xctestrun_config|
|
|
13
|
+
test_identifiers = XCTestList.tests(xctest_bundle_path(xctestrun_rootpath, xctestrun_config))
|
|
14
|
+
if xctestrun_config.key?('SkipTestIdentifiers')
|
|
15
|
+
test_identifiers.reject! { |test_identifier| xctestrun_config['SkipTestIdentifiers'].include?(test_identifier) }
|
|
16
|
+
end
|
|
17
|
+
tests[testable_name] = test_identifiers.map do |test_identifier|
|
|
18
|
+
"#{testable_name.shellescape}/#{test_identifier}"
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
tests
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def self.xctest_bundle_path(xctestrun_rootpath, xctestrun_config)
|
|
25
|
+
xctest_host_path = xctestrun_config['TestHostPath'].sub('__TESTROOT__', xctestrun_rootpath)
|
|
26
|
+
xctestrun_config['TestBundlePath'].sub!('__TESTHOST__', xctest_host_path)
|
|
27
|
+
xctestrun_config['TestBundlePath'].sub('__TESTROOT__', xctestrun_rootpath)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
#####################################################
|
|
31
|
+
# @!group Documentation
|
|
32
|
+
#####################################################
|
|
33
|
+
|
|
34
|
+
def self.description
|
|
35
|
+
"Retrieves all of the tests from xctest bundles referenced by the xctestrun file"
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def self.available_options
|
|
39
|
+
[
|
|
40
|
+
FastlaneCore::ConfigItem.new(
|
|
41
|
+
key: :xctestrun,
|
|
42
|
+
env_name: "FL_SUPPRESS_TESTS_FROM_XCTESTRUN_FILE",
|
|
43
|
+
description: "The xctestrun file to use to find where the xctest bundle file is for test retrieval",
|
|
44
|
+
verify_block: proc do |path|
|
|
45
|
+
UI.user_error!("Error: cannot find the xctestrun file '#{path}'") unless File.exist?(path)
|
|
46
|
+
end
|
|
47
|
+
)
|
|
48
|
+
]
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def self.return_value
|
|
52
|
+
"A Hash of testable => tests, where testable is the name of the test target and tests is an array of test identifiers"
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def self.authors
|
|
56
|
+
["lyndsey-ferguson/lyndseydf"]
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def self.is_supported?(platform)
|
|
60
|
+
platform == :ios
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fastlane-plugin-test_center
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Lyndsey Ferguson
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-02-
|
|
11
|
+
date: 2018-02-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: xcodeproj
|
|
@@ -171,7 +171,8 @@ description: |2
|
|
|
171
171
|
3) suppress_tests: suppresses specific tests in a specific or all Xcode Schemes in a given project.
|
|
172
172
|
4) suppressed_tests: retrieves a list of tests that are suppressed in a specific or all Xcode Schemes in a project.
|
|
173
173
|
5) tests_from_junit: retrieves the failing and passing tests as reported in a junit xml file.
|
|
174
|
-
6)
|
|
174
|
+
6) tests_from_xctestrun: retrieves all of the tests from xctest bundles referenced by the xctestrun file
|
|
175
|
+
7) collate_junit_reports: collects and correctly organizes junit reports from multiple test passes.
|
|
175
176
|
email: ldf.public+github@outlook.com
|
|
176
177
|
executables: []
|
|
177
178
|
extensions: []
|
|
@@ -186,6 +187,7 @@ files:
|
|
|
186
187
|
- lib/fastlane/plugin/test_center/actions/suppress_tests_from_junit.rb
|
|
187
188
|
- lib/fastlane/plugin/test_center/actions/suppressed_tests.rb
|
|
188
189
|
- lib/fastlane/plugin/test_center/actions/tests_from_junit.rb
|
|
190
|
+
- lib/fastlane/plugin/test_center/actions/tests_from_xctestrun.rb
|
|
189
191
|
- lib/fastlane/plugin/test_center/helper/junit_helper.rb
|
|
190
192
|
- lib/fastlane/plugin/test_center/helper/test_center_helper.rb
|
|
191
193
|
- lib/fastlane/plugin/test_center/helper/xcodebuild_string.rb
|