fastlane-plugin-test_center 3.10.1 → 3.10.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/fastlane/plugin/test_center/helper/multi_scan_manager/retrying_scan.rb +5 -2
- data/lib/fastlane/plugin/test_center/helper/multi_scan_manager/retrying_scan_helper.rb +19 -0
- data/lib/fastlane/plugin/test_center/helper/multi_scan_manager/runner.rb +11 -11
- data/lib/fastlane/plugin/test_center/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7c6d2198915a9633a3ab0d6f284a76f9cf03682524747b73e546786852bf2a86
|
4
|
+
data.tar.gz: 494391029f0689f83a34b7babba3772294b7ee112e1505e69ce09db300743d3b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 77f8e4cbaa0235a71f34e849b95c0eb0321f0e666709fce63cd517af43c2d027cb5f0e8a32f3c10de692a97c5e496b83352e8aec294bb828098d85ff0bf4328c
|
7
|
+
data.tar.gz: 1cea423213b5ea48f5274a9efa1aa2765ad776ebfe414b699c5fa7411dbbdaf37ae00876f2175f81c2c95dd0d82892e5ab51599e692d2020d48b5ec945309b7a
|
@@ -17,16 +17,18 @@ module TestCenter
|
|
17
17
|
end
|
18
18
|
# :nocov:
|
19
19
|
|
20
|
-
def
|
20
|
+
def prepare_scan_config
|
21
21
|
# this allows multi_scan's `destination` option to be picked up by `scan`
|
22
22
|
scan_config._values.delete(:device)
|
23
23
|
ENV.delete('SCAN_DEVICE')
|
24
24
|
scan_config._values.delete(:devices)
|
25
25
|
ENV.delete('SCAN_DEVICES')
|
26
|
+
# this prevents double -resultBundlePath args to xcodebuild
|
26
27
|
if ReportNameHelper.includes_xcresult?(@options[:output_types])
|
27
28
|
scan_config._values.delete(:result_bundle)
|
28
29
|
ENV.delete('SCAN_RESULT_BUNDLE')
|
29
30
|
end
|
31
|
+
scan_config._values.delete(:skip_testing)
|
30
32
|
scan_cache.clear
|
31
33
|
end
|
32
34
|
|
@@ -35,8 +37,9 @@ module TestCenter
|
|
35
37
|
scan_options = @options.select { |k,v| valid_scan_keys.include?(k) }
|
36
38
|
.merge(@retrying_scan_helper.scan_options)
|
37
39
|
|
38
|
-
|
40
|
+
prepare_scan_config
|
39
41
|
scan_options[:build_for_testing] = false
|
42
|
+
scan_options.delete(:skip_testing)
|
40
43
|
FastlaneCore::UI.verbose("retrying_scan #update_scan_options")
|
41
44
|
scan_options.each do |k,v|
|
42
45
|
next if v.nil?
|
@@ -288,6 +288,25 @@ module TestCenter
|
|
288
288
|
end
|
289
289
|
|
290
290
|
def retrieve_test_operation_failure(test_session_last_messages)
|
291
|
+
if FastlaneCore::Helper.xcode_at_least?(11)
|
292
|
+
retrieve_test_operation_failure_post_xcode11(test_session_last_messages)
|
293
|
+
else
|
294
|
+
retrieve_test_operation_failure_pre_xcode11(test_session_last_messages)
|
295
|
+
end
|
296
|
+
end
|
297
|
+
|
298
|
+
def retrieve_test_operation_failure_post_xcode11(test_session_last_messages)
|
299
|
+
if /Connection peer refused channel request/ =~ test_session_last_messages
|
300
|
+
test_operation_failure = 'Lost connection to testmanagerd'
|
301
|
+
elsif /Please unlock your device and reattach/ =~ test_session_last_messages
|
302
|
+
test_operation_failure = 'Test device locked'
|
303
|
+
elsif /Test runner exited before starting test execution/ =~ test_session_last_messages
|
304
|
+
test_operation_failure = 'Test runner exited before starting test execution'
|
305
|
+
end
|
306
|
+
test_operation_failure
|
307
|
+
end
|
308
|
+
|
309
|
+
def retrieve_test_operation_failure_pre_xcode11(test_session_last_messages)
|
291
310
|
test_operation_failure_match = /Test operation failure: (?<test_operation_failure>.*)$/ =~ test_session_last_messages
|
292
311
|
if test_operation_failure_match.nil?
|
293
312
|
test_operation_failure = 'Unknown test operation failure'
|
@@ -7,7 +7,7 @@ module TestCenter
|
|
7
7
|
require 'json'
|
8
8
|
require 'shellwords'
|
9
9
|
require 'snapshot/reset_simulators'
|
10
|
-
|
10
|
+
|
11
11
|
class Runner
|
12
12
|
attr_reader :retry_total_count
|
13
13
|
|
@@ -66,12 +66,12 @@ module TestCenter
|
|
66
66
|
end
|
67
67
|
|
68
68
|
unless tests_passed || @options[:try_count] < 1
|
69
|
-
setup_testcollector
|
69
|
+
setup_testcollector
|
70
70
|
tests_passed = run_test_batches
|
71
71
|
end
|
72
72
|
tests_passed
|
73
73
|
end
|
74
|
-
|
74
|
+
|
75
75
|
def should_run_tests_through_single_try?
|
76
76
|
should_run_for_invocation_tests = @options[:invocation_based_tests] && @options[:only_testing].nil?
|
77
77
|
should_run_for_skip_build = @options[:skip_build]
|
@@ -114,16 +114,16 @@ module TestCenter
|
|
114
114
|
end
|
115
115
|
@options[:output_directory] = output_directory
|
116
116
|
@options[:destination] = Scan.config[:destination]
|
117
|
-
|
117
|
+
|
118
118
|
# We do not want Scan.config to _not_ have :device :devices, we want to
|
119
119
|
# use :destination. We remove :force_quit_simulator as we do not want
|
120
120
|
# Scan to handle it as multi_scan takes care of it in its own way
|
121
121
|
options = @options.reject { |key| %i[device devices force_quit_simulator].include?(key) }
|
122
122
|
options[:try_count] = 1
|
123
|
-
|
123
|
+
|
124
124
|
tests_passed = RetryingScan.run(options)
|
125
125
|
@options[:try_count] -= 1
|
126
|
-
|
126
|
+
|
127
127
|
reportnamer = ReportNameHelper.new(
|
128
128
|
@options[:output_types],
|
129
129
|
@options[:output_files],
|
@@ -138,12 +138,12 @@ module TestCenter
|
|
138
138
|
)
|
139
139
|
@options[:only_testing] = retrieve_failed_single_try_tests
|
140
140
|
@options[:only_testing] = @options[:only_testing].map(&:strip_testcase).uniq
|
141
|
-
|
141
|
+
|
142
142
|
symlink_result_bundle_to_xcresult(output_directory, reportnamer)
|
143
143
|
|
144
144
|
tests_passed
|
145
145
|
end
|
146
|
-
|
146
|
+
|
147
147
|
def retrieve_failed_single_try_tests
|
148
148
|
reportnamer = ReportNameHelper.new(
|
149
149
|
@options[:output_types],
|
@@ -168,10 +168,10 @@ module TestCenter
|
|
168
168
|
|
169
169
|
pool = TestBatchWorkerPool.new(pool_options)
|
170
170
|
pool.setup_workers
|
171
|
-
|
171
|
+
|
172
172
|
remaining_test_batches = @test_collector.test_batches.clone
|
173
173
|
remaining_test_batches.each_with_index do |test_batch, current_batch_index|
|
174
|
-
worker = pool.wait_for_worker
|
174
|
+
worker = pool.wait_for_worker
|
175
175
|
FastlaneCore::UI.message("Starting test run #{current_batch_index + 1}")
|
176
176
|
worker.run(scan_options_for_worker(test_batch, current_batch_index))
|
177
177
|
end
|
@@ -189,7 +189,7 @@ module TestCenter
|
|
189
189
|
batch: batch_index + 1
|
190
190
|
}
|
191
191
|
end
|
192
|
-
|
192
|
+
|
193
193
|
def collate_batched_reports
|
194
194
|
return unless @batch_count > 1
|
195
195
|
return unless @options[:collate_reports]
|
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: 3.10.
|
4
|
+
version: 3.10.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lyndsey Ferguson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-04-
|
11
|
+
date: 2020-04-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|