fastlane-plugin-retry_tests 1.3.2 → 1.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: efbcd821c57d6506fa4045bee410f8dd5271de7c
4
- data.tar.gz: 9fedea7aa142c463ee5a4c91deaf65a0a7556bf4
3
+ metadata.gz: 1a0861a627d2bfd0292d137580b0d9b07c91964f
4
+ data.tar.gz: 9fdf46ae22536ba69d16e5d0fb147aeb14aed445
5
5
  SHA512:
6
- metadata.gz: 8107bf8fc76c7223d186a0e7aae3c0d6f1d15eaadce9e43c2406e10fd53e2ef003e3fc228e42c3d91b2d2144a19748d85bb38a9f554f12405eac12c6838af902
7
- data.tar.gz: 9ffa30243c8960a34ce2b17bc7fac7eaa7774fe673dfbeb59a10bd5f32f6929c35426e42b7bafc5bb86243bdc49f6e04884ed91c9dbb1c61ff8502da31da92df
6
+ metadata.gz: ed3bc24fe0e8436f9f281262eebaea90207c6e7be6765f01efbe333f06e867be38b9092b3062186edb24690f762788a19c9f6b5a92088b9d83550b2cbd80afdf
7
+ data.tar.gz: b1cb78997558327ed5846c6c85b2e4ff54e093661918afd01154fb60a4bd174ccf4b007a3579fadbf0bfc72b588ad32f660166c13f457424ef5b84235948086c
@@ -1,3 +1,4 @@
1
+ #Adapted from the "fastlane-plugin-test_center" plugin
1
2
 
2
3
  require 'nokogiri'
3
4
  require 'nokogiri-plist'
@@ -11,9 +12,12 @@ module Fastlane
11
12
  if report_filepaths.size == 1
12
13
  FileUtils.cp(report_filepaths[0], params[:collated_report])
13
14
  else
15
+ #Convert .plist reports to Nokogiri XML objects
14
16
  target_report = File.open(report_filepaths.shift) {|f| Nokogiri::XML(f)}
15
17
  file_name = params[:collated_report] + "/#{params[:scheme]}.test_result/1_Test/action_TestSummaries.plist"
16
18
  reports = report_filepaths.map { |report_filepath| Nokogiri::XML(Nokogiri::PList(open(report_filepath)).to_plist_xml) }
19
+
20
+ #Merge .plist reports
17
21
  reports.each do |retry_report|
18
22
  mergeLists(target_report, retry_report, params)
19
23
  end
@@ -22,24 +26,15 @@ module Fastlane
22
26
  copy_log(params[:logs], params[:collated_report] + "/")
23
27
  end
24
28
 
25
- def self.clean_report(report)
26
- report = report.gsub(/<(\w+): 0x(\w+)>/, '(\1: 0x\2)')
27
- report = report.gsub(/<XCAccessibilityElement:\/>0x(\w+)/, '(XCAccessibilityElement): 0x\1')
28
- report
29
- end
30
-
31
- def self.copy_log(log_files, logs_folder)
32
- target_log = log_files.shift
33
- FileUtils.cp_r(target_log, logs_folder)
34
- end
35
-
36
29
  def self.mergeLists(target_report, retry_report, params)
37
30
  retry_report = clean_report(retry_report)
38
- UI.verbose("Merging retried results...")
39
31
  Dir.mkdir(params[:collated_report]) unless File.exists?(params[:collated_report])
40
32
  file_name = params[:collated_report] + "/action_TestSummaries.plist"
41
33
  retried_tests = retry_report.xpath("//key[contains(.,'TestSummaryGUID')]/..")
34
+
42
35
  current_node = retried_tests.shift
36
+
37
+ #Copy retried test results into the base report
43
38
  while (current_node != nil)
44
39
  testName = get_test_name(current_node)
45
40
  matching_node = target_report.at_xpath("//string[contains(.,'#{testName}')]/..")
@@ -52,28 +47,37 @@ module Fastlane
52
47
  end
53
48
  end
54
49
 
50
+ def self.clean_report(report)
51
+ report = report.gsub(/<(\w+): 0x(\w+)>/, '(\1: 0x\2)')
52
+ report = report.gsub(/<XCAccessibilityElement:\/>0x(\w+)/, '(XCAccessibilityElement): 0x\1')
53
+ report
54
+ end
55
+
55
56
  def self.merge_assets(asset_files, assets_folder)
56
- UI.verbose ("Merging screenshot folders...")
57
+ #copy screenshots from all retries into the results folder
57
58
  Dir.mkdir(assets_folder) unless File.exists?(assets_folder)
58
59
  asset_files.each do |folder|
59
60
  FileUtils.cp_r(Dir[folder + '/*'], assets_folder)
60
61
  end
61
62
  end
62
63
 
64
+ def self.copy_log(log_files, logs_folder)
65
+ target_log = log_files.shift
66
+ FileUtils.cp_r(target_log, logs_folder)
67
+ end
68
+
63
69
  def self.merge_logs(log_files, logs_folder)
64
70
  UI.verbose("Merging console logs...")
71
+ all = ""
65
72
  target_log = log_files.shift
66
73
  log_files.each do |log|
67
- to_append = File.read(log)
68
- File.open(target_log, "a") do |handle|
69
- handle.puts to_append
70
- end
71
- FileUtils.cp_r(target_log, logs_folder)
74
+ all = all + log + " "
72
75
  end
76
+ sh("cat #{all}> #{target_log}")
77
+ FileUtils.cp_r(target_log, logs_folder)
73
78
  end
74
79
 
75
80
  def self.write_report_to_file(report, file_name)
76
- UI.verbose("Writing merged results to file...")
77
81
  File.new(file_name, 'w')
78
82
  File.open(file_name, 'w') do |f|
79
83
  f.write(report.to_xml)
@@ -167,6 +171,7 @@ module Fastlane
167
171
  end
168
172
 
169
173
  def self.authors
174
+ #Adapted from the "fastlane-plugin-test_center" plugin by:
170
175
  ["lyndsey-ferguson/@lyndseydf"]
171
176
  end
172
177
 
@@ -1,3 +1,5 @@
1
+ #Adapted from the "fastlane-plugin-test_center" plugin
2
+
1
3
  module Fastlane
2
4
  module Actions
3
5
  require 'fastlane/actions/scan'
@@ -5,6 +7,7 @@ module Fastlane
5
7
 
6
8
  class MultiScanAction < Action
7
9
  def self.run(params)
10
+ =begin
8
11
  try_count = 0
9
12
  scan_options = params.values.reject { |k| k == :try_count }
10
13
  final_report_path = scan_options[:result_bundle]
@@ -23,7 +26,8 @@ module Fastlane
23
26
  config = FastlaneCore::Configuration.create(Fastlane::Actions::ScanAction.available_options, scan_options)
24
27
  Fastlane::Actions::ScanAction.run(config)
25
28
  rescue FastlaneCore::Interface::FastlaneTestFailure => e
26
- UI.verbose("Scan failed with #{e}")
29
+ FastlaneCore::UI.verbose("Scan failed with error #{e}")
30
+ #Retry for the specified number of times if there were failed tests
27
31
  if try_count < params[:try_count]
28
32
  report_filepath = junit_report_filepath(scan_options)
29
33
  failed_tests = other_action.tests_from_junit(junit: report_filepath)[:failed]
@@ -31,6 +35,7 @@ module Fastlane
31
35
  retry
32
36
  end
33
37
  end
38
+ =end
34
39
  merge_reports(scan_options, final_report_path)
35
40
  end
36
41
 
@@ -40,7 +45,6 @@ module Fastlane
40
45
  asset_files = Dir.glob("#{folder}*/#{scan_options[:scheme]}.test_result/1_Test/Attachments")
41
46
  log_files = Dir.glob("#{folder}*/#{scan_options[:scheme]}.test_result/1_Test/action.xcactivitylog")
42
47
  #Merge all reports, screenshots, and logs if there were retried tests
43
-
44
48
  if report_files.size > 1
45
49
  other_action.collate_junit_reports(
46
50
  scheme: scan_options[:scheme],
@@ -132,6 +136,7 @@ module Fastlane
132
136
  end
133
137
 
134
138
  def self.authors
139
+ #Adapted from the "fastlane-plugin-test_center" plugin by:
135
140
  ["lyndsey-ferguson/@lyndseydf"]
136
141
  end
137
142
 
@@ -1,7 +1,7 @@
1
- #require 'fastlane/plugin/retry_tests/version'
1
+ require 'fastlane/plugin/retry_tests/version'
2
2
 
3
3
  module Fastlane
4
- module TestCenter
4
+ module RetryTests
5
5
  # Return all .rb files inside the "actions" and "helper" directory
6
6
  def self.all_classes
7
7
  Dir[File.expand_path('**/{actions,helper}/*.rb', File.dirname(__FILE__))]
@@ -11,6 +11,6 @@ end
11
11
 
12
12
  # By default we want to import all available actions and helpers
13
13
  # A plugin can contain any number of actions and plugins
14
- Fastlane::TestCenter.all_classes.each do |current|
14
+ Fastlane::RetryTests.all_classes.each do |current|
15
15
  require current
16
16
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-retry_tests
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gloria Chow
@@ -217,5 +217,5 @@ rubyforge_project:
217
217
  rubygems_version: 2.6.14
218
218
  signing_key:
219
219
  specification_version: 4
220
- summary: Makes testing your iOS app easier.
220
+ summary: Makes testing your iOS app easier
221
221
  test_files: []