fastlane-plugin-test_center 3.8.0.parallelizing.beta.6 → 3.8.0.parallelizing.beta.7

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: e0abb88b056ab3ce1b5134bcba455b75b03edba6
4
- data.tar.gz: a46757467fd8252aeee2b5e2d8d8c56951c66c3c
3
+ metadata.gz: 7d7647dee8a9311b8e18eeba2a4afbc906d0c751
4
+ data.tar.gz: 0074ac993896e002df67534365fe1e367a2bc71d
5
5
  SHA512:
6
- metadata.gz: 8e3831bd80e00306f11182cbc869fe90cac17ed4f74b9866d69481d19bf629be28e1fe62fce1001cfc81c056a79c18c3aa12ccbd1b4ccd9828f6f9eb1aff3f11
7
- data.tar.gz: 67ac125bf98de3c843a627817f792a09b6620641a385e4b4c29d9843f281a4c9c7469ab772ed11a253c16fc444a8fb031031be25023e30652cc0e781387b0ae3
6
+ metadata.gz: 2da85b784f6d88a4b0022c07ec3d6b2def13c1a7f47d8634ae1a665255d814de59c783ff85d39765fdc523cba1bb260200c01f314d25cff846cd946747425f7c
7
+ data.tar.gz: 8fdec1723d3d712a5907c240a0121997553b3aa5750cd2eb856721d7b09e7a2f14d7358f41eb730522993508fa190e37d05e1ac34cb60249292d9eb0a853c0e4
@@ -49,7 +49,11 @@ module TestCenter
49
49
  end
50
50
 
51
51
  def print_starting_scan_message
52
- scan_message = "Starting scan ##{@testrun_count + 1} with #{@options.fetch(:only_testing, []).size} tests"
52
+ if @options[:only_testing]
53
+ scan_message = "Starting scan ##{@testrun_count + 1} with #{@options.fetch(:only_testing, []).size} tests"
54
+ else
55
+ scan_message = "Starting scan ##{@testrun_count + 1}"
56
+ end
53
57
  scan_message << " for batch ##{@options[:batch]}" unless @options[:batch].nil?
54
58
  FastlaneCore::UI.message("#{scan_message}.")
55
59
  end
@@ -117,7 +121,6 @@ module TestCenter
117
121
 
118
122
  def handle_test_failure
119
123
  send_callback_testrun_info
120
- reset_simulators
121
124
  move_test_result_bundle_for_next_run
122
125
  update_scan_options
123
126
  @reportnamer.increment
@@ -189,12 +192,6 @@ module TestCenter
189
192
  @options[:only_testing] = @options[:only_testing].map(&:strip_testcase).uniq
190
193
  end
191
194
  end
192
-
193
- def reset_simulators
194
- return unless @options[:reset_simulators]
195
-
196
- @options[:simulators].each(&:reset)
197
- end
198
195
 
199
196
  def handle_build_failure(exception)
200
197
  test_operation_failure = ''
@@ -219,11 +216,6 @@ module TestCenter
219
216
  send_callback_testrun_info(test_operation_failure: test_operation_failure)
220
217
  raise exception
221
218
  end
222
- if @options[:reset_simulators]
223
- @options[:simulators].each do |simulator|
224
- simulator.reset
225
- end
226
- end
227
219
  send_callback_testrun_info(test_operation_failure: test_operation_failure)
228
220
  end
229
221
 
@@ -12,11 +12,19 @@ module TestCenter
12
12
  attr_reader :retry_total_count
13
13
 
14
14
  def initialize(multi_scan_options)
15
- @test_collector = TestCenter::Helper::TestCollector.new(multi_scan_options)
16
15
  @options = multi_scan_options.merge(
17
16
  clean: false,
18
17
  disable_concurrent_testing: true
19
18
  )
19
+ @batch_count = 1 # default count. Will be updated by setup_testcollector
20
+ setup_testcollector
21
+ end
22
+
23
+ def setup_testcollector
24
+ return if @options[:invocation_based_tests] && @options[:only_testing].nil?
25
+ return if @test_collector
26
+
27
+ @test_collector = TestCenter::Helper::TestCollector.new(@options)
20
28
  @batch_count = @test_collector.test_batches.size
21
29
  end
22
30
 
@@ -34,9 +42,13 @@ module TestCenter
34
42
  def run
35
43
  remove_preexisting_test_result_bundles
36
44
 
37
- if @options[:invocation_based_tests]
38
- run_invocation_based_tests
39
- else
45
+ tests_passed = false
46
+ if @options[:invocation_based_tests] && @options[:only_testing].nil?
47
+ tests_passed = run_invocation_based_tests
48
+ end
49
+
50
+ unless tests_passed || @options[:try_count] < 1
51
+ setup_testcollector
40
52
  run_test_batches
41
53
  end
42
54
  end
@@ -50,11 +62,32 @@ module TestCenter
50
62
  end
51
63
 
52
64
  def run_invocation_based_tests
53
- @options[:only_testing] = @options[:only_testing]&.map(&:strip_testcase)&.uniq
54
65
  @options[:skip_testing] = @options[:skip_testing]&.map(&:strip_testcase)&.uniq
55
66
  @options[:output_directory] = output_directory
56
-
57
- RetryingScan.run(@options.reject { |key| %i[device devices force_quit_simulator].include?(key) } )
67
+ @options[:destination] = Scan.config[:destination]
68
+
69
+ options = @options.reject { |key| %i[device devices force_quit_simulator].include?(key) }
70
+ options[:try_count] = 1
71
+
72
+ tests_passed = RetryingScan.run(options)
73
+ @options[:try_count] -= 1
74
+
75
+ reportnamer = ReportNameHelper.new(
76
+ @options[:output_types],
77
+ @options[:output_files],
78
+ @options[:custom_report_file_name]
79
+ )
80
+ report_filepath = File.join(output_directory, reportnamer.junit_last_reportname)
81
+ config = FastlaneCore::Configuration.create(
82
+ Fastlane::Actions::TestsFromJunitAction.available_options,
83
+ {
84
+ junit: File.absolute_path(report_filepath)
85
+ }
86
+ )
87
+ @options[:only_testing] = Fastlane::Actions::TestsFromJunitAction.run(config)[:failed]
88
+ @options[:only_testing] = @options[:only_testing].map(&:strip_testcase).uniq
89
+
90
+ tests_passed
58
91
  end
59
92
 
60
93
  def run_test_batches
@@ -17,6 +17,7 @@ module TestCenter
17
17
  end
18
18
  @only_testing = options[:only_testing]
19
19
  @skip_testing = options[:skip_testing]
20
+ @invocation_based_tests = options[:invocation_based_tests]
20
21
  @batch_count = options[:batch_count]
21
22
  if @batch_count == 1 && options[:parallel_testrun_count] > 1
22
23
  @batch_count = options[:parallel_testrun_count]
@@ -67,23 +68,28 @@ module TestCenter
67
68
  ::Fastlane::Actions::TestsFromXctestrunAction.run(config)
68
69
  end
69
70
 
71
+ def expand_testsuites_to_tests
72
+ return if @invocation_based_tests
73
+
74
+ known_tests = nil
75
+ @testables_tests.each do |testable, tests|
76
+ tests.each_with_index do |test, index|
77
+ if test.count('/') < 2
78
+ known_tests ||= xctestrun_known_tests[testable]
79
+ test_components = test.split('/')
80
+ testsuite = test_components.size == 1 ? test_components[0] : test_components[1]
81
+ @testables_tests[testable][index] = known_tests.select { |known_test| known_test.include?(testsuite) }
82
+ end
83
+ end
84
+ @testables_tests[testable].flatten!
85
+ end
86
+ end
87
+
70
88
  def testables_tests
71
89
  unless @testables_tests
72
90
  if @only_testing
73
- known_tests = nil
74
91
  @testables_tests = only_testing_to_testables_tests
75
-
76
- @testables_tests.each do |testable, tests|
77
- tests.each_with_index do |test, index|
78
- if test.count('/') < 2
79
- known_tests ||= xctestrun_known_tests[testable]
80
- test_components = test.split('/')
81
- testsuite = test_components.size == 1 ? test_components[0] : test_components[1]
82
- @testables_tests[testable][index] = known_tests.select { |known_test| known_test.include?(testsuite) }
83
- end
84
- end
85
- @testables_tests[testable].flatten!
86
- end
92
+ expand_testsuites_to_tests
87
93
  else
88
94
  @testables_tests = xctestrun_known_tests
89
95
  if @skip_testing
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module TestCenter
3
- VERSION = "3.8.0.parallelizing.beta.6"
3
+ VERSION = "3.8.0.parallelizing.beta.7"
4
4
  end
5
5
  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: 3.8.0.parallelizing.beta.6
4
+ version: 3.8.0.parallelizing.beta.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lyndsey Ferguson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-06 00:00:00.000000000 Z
11
+ date: 2019-07-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json