fastlane-plugin-test_center 3.11.0 → 3.11.1

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
  SHA256:
3
- metadata.gz: 1fe7c4581f1be17faf807466f1b9b82cf6ee917fef0695c861ef718417dc4c0d
4
- data.tar.gz: e0b966985549a444bfcafafa4926eb4f4927f6f43b12b39aa0b025c935e6b185
3
+ metadata.gz: bddea97ab673c1bd898093a97dbb8382f71a45b43c3383cd4324742f0074492a
4
+ data.tar.gz: 727b0661fc19d6a710f793b8f5f9392ea62a195891b1149a244dd5aefbaf10a4
5
5
  SHA512:
6
- metadata.gz: f412ba3da2f63443923a94dec51b9f8bd7ed792ab98b4e0c1076fad2520e2a22eed74d3214cab40b36266c2fe35ca136194f4fdcd0e6d42c9730c80237fa0dff
7
- data.tar.gz: fc7cb57702c648d99079d092b03abf44726a7fe6ac229da7202d73fe745de3e7d33be40675d0b8f0ce2827fbb7cc314d335a2019163b6a675b4cd5177e5e711b
6
+ metadata.gz: c686a799d1e1cc3d20066357b62e895ae68504b0438374958a3d1bea6da748bba1665fd5b8d77629d975ee0dd0d1fddb3ee4e992bee3e0773f3fde95dc009234
7
+ data.tar.gz: ffd5facb9d4e62ad79ae59852b5794bba8fabceb327e3aa628152d7004e1fba6c0694a1746fdbd186b9e474d3dc31820d2c453afeaab009778a3b8445d47b1b6
data/README.md CHANGED
@@ -21,7 +21,7 @@ Have you ever spent too much time trying to fix fragile tests only to give up wi
21
21
 
22
22
  ## Features
23
23
 
24
- This plugin makes testing your iOS app easier by providing you actions that give you greater control over everything related to testing your app.
24
+ This plugin makes testing your iOS app easier by providing you actions that give you greater control over everything related to testing your app.
25
25
 
26
26
  `multi_scan` began when I created an action to only re-run the failed tests in order to determine if they were truly failing, or if they were failing randomly due to a fragile infrastructure. This action morphed into an entire plugin with many actions in the testing category.
27
27
 
@@ -35,6 +35,8 @@ _read the documentation on each action by clicking on the action name_
35
35
  | [`suppress_tests_from_junit`](docs/feature_details/suppress_tests_from_junit.md) | suppress tests in an Xcode Scheme using those in a Junit test report | ios, mac |
36
36
  | [`suppress_tests`](docs/feature_details/suppress_tests.md) | suppress tests in an Xcode Scheme | ios, mac |
37
37
  | [`suppressed_tests`](docs/feature_details/suppressed_tests.md) | returns a list of the suppressed tests in your Xcode Project or Scheme | ios, mac |
38
+ | [`test_options_from_testplan`](docs/feature_details/test_options_from_testplan.md) | returns the tests and test code coverage configuration for a given testplan | ios, mac |
39
+ | [`testplans_from_scheme`](docs/feature_details/testplans_from_scheme.md) | returns the testplans that an Xcode Scheme references | ios, mac |
38
40
  | [`tests_from_junit`](docs/feature_details/tests_from_junit.md) | returns the passing and failing tests in a Junit test report | ios, mac |
39
41
  | [`tests_from_xctestrun`](docs/feature_details/tests_from_xctestrun.md) | returns a list of tests for each test target in a `xctestrun` file | ios, mac |
40
42
  | [`collate_junit_reports`](docs/feature_details/collate_junit_reports.md) | combines multiple Junit test reports into one report | ios, mac |
@@ -62,7 +64,7 @@ The most popular action in the `test_center` plugin is `multi_scan`, and if you
62
64
  multi_scan(
63
65
  project: File.absolute_path('../AtomicBoy/AtomicBoy.xcodeproj'),
64
66
  scheme: 'AtomicBoy',
65
- try_count: 3, # retry _failing_ tests up to three times^1.
67
+ try_count: 3, # retry _failing_ tests up to three times^1.
66
68
  fail_build: false,
67
69
  parallel_testrun_count: 4 # run subsets of your tests on parallel simulators^2
68
70
  )
@@ -45,7 +45,7 @@ module TestCenter
45
45
 
46
46
  derived_data_path = File.expand_path(@options[:derived_data_path] || Scan.config[:derived_data_path])
47
47
  xcresults = Dir.glob("#{derived_data_path}/Logs/Test/*.xcresult")
48
- if FastlaneCore::Helper.xcode_at_least?('11.0.0')
48
+ if FastlaneCore::Helper.xcode_at_least?('11')
49
49
  xcresults += Dir.glob("#{output_directory}/*.xcresult")
50
50
  end
51
51
  FastlaneCore::UI.verbose("Deleting xcresults:")
@@ -292,7 +292,7 @@ module TestCenter
292
292
  end
293
293
 
294
294
  def retrieve_test_operation_failure(test_session_last_messages)
295
- if FastlaneCore::Helper.xcode_at_least?(11)
295
+ if FastlaneCore::Helper.xcode_at_least?('11')
296
296
  retrieve_test_operation_failure_post_xcode11(test_session_last_messages)
297
297
  else
298
298
  retrieve_test_operation_failure_pre_xcode11(test_session_last_messages)
@@ -306,6 +306,8 @@ module TestCenter
306
306
  test_operation_failure = 'Test device locked'
307
307
  elsif /Test runner exited before starting test execution/ =~ test_session_last_messages
308
308
  test_operation_failure = 'Test runner exited before starting test execution'
309
+ else
310
+ test_operation_failure = 'Unknown test operation failure'
309
311
  end
310
312
  test_operation_failure
311
313
  end
@@ -346,15 +348,17 @@ module TestCenter
346
348
  def move_test_result_bundle_for_next_run
347
349
  return unless @options[:result_bundle]
348
350
 
349
- glob_pattern = "#{output_directory}/*.test_result"
351
+ result_extension = FastlaneCore::Helper.xcode_at_least?('11') ? '.xcresult' : '.test_result'
352
+
353
+ glob_pattern = "#{output_directory}/*#{result_extension}"
350
354
  preexisting_test_result_bundles = Dir.glob(glob_pattern)
351
355
  unnumbered_test_result_bundles = preexisting_test_result_bundles.reject do |test_result|
352
- test_result =~ /.*-\d+\.test_result/
356
+ test_result =~ /.*-\d+\#{result_extension}/
353
357
  end
354
358
  src_test_bundle = unnumbered_test_result_bundles.first
355
359
  dst_test_bundle_parent_dir = File.dirname(src_test_bundle)
356
- dst_test_bundle_basename = File.basename(src_test_bundle, '.test_result')
357
- dst_test_bundle = "#{dst_test_bundle_parent_dir}/#{dst_test_bundle_basename}-#{@testrun_count}.test_result"
360
+ dst_test_bundle_basename = File.basename(src_test_bundle, result_extension)
361
+ dst_test_bundle = "#{dst_test_bundle_parent_dir}/#{dst_test_bundle_basename}-#{@testrun_count}#{result_extension}"
358
362
  FastlaneCore::UI.verbose("Moving test_result '#{src_test_bundle}' to '#{dst_test_bundle}'")
359
363
  File.rename(src_test_bundle, dst_test_bundle)
360
364
  end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module TestCenter
3
- VERSION = "3.11.0"
3
+ VERSION = "3.11.1"
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.11.0
4
+ version: 3.11.1
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-06-09 00:00:00.000000000 Z
11
+ date: 2020-06-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -270,7 +270,6 @@ files:
270
270
  - lib/fastlane/plugin/test_center/actions/test_options_from_testplan.rb
271
271
  - lib/fastlane/plugin/test_center/actions/testplans_from_scheme.rb
272
272
  - lib/fastlane/plugin/test_center/actions/tests_from_junit.rb
273
- - lib/fastlane/plugin/test_center/actions/tests_from_xcresult.rb
274
273
  - lib/fastlane/plugin/test_center/actions/tests_from_xctestrun.rb
275
274
  - lib/fastlane/plugin/test_center/helper/html_test_report.rb
276
275
  - lib/fastlane/plugin/test_center/helper/junit_helper.rb
@@ -1,82 +0,0 @@
1
- module Fastlane
2
- module Actions
3
- module SharedValues
4
- TESTS_FROM_XCRESULT_CUSTOM_VALUE = :TESTS_FROM_XCRESULT_CUSTOM_VALUE
5
- end
6
-
7
- class TestsFromXcresultAction < Action
8
- def self.run(params)
9
- # fastlane will take care of reading in the parameter and fetching the environment variable:
10
- UI.message "Parameter API Token: #{params[:api_token]}"
11
-
12
- # sh "shellcommand ./path"
13
-
14
- # Actions.lane_context[SharedValues::TESTS_FROM_XCRESULT_CUSTOM_VALUE] = "my_val"
15
- end
16
-
17
- #####################################################
18
- # @!group Documentation
19
- #####################################################
20
-
21
- def self.description
22
- "A short description with <= 80 characters of what this action does"
23
- end
24
-
25
- def self.details
26
- # Optional:
27
- # this is your chance to provide a more detailed description of this action
28
- "You can use this action to do cool things..."
29
- end
30
-
31
- def self.available_options
32
- # Define all options your action supports.
33
-
34
- # Below a few examples
35
- [
36
- FastlaneCore::ConfigItem.new(key: :api_token,
37
- env_name: "FL_TESTS_FROM_XCRESULT_API_TOKEN", # The name of the environment variable
38
- description: "API Token for TestsFromXcresultAction", # a short description of this parameter
39
- verify_block: proc do |value|
40
- UI.user_error!("No API token for TestsFromXcresultAction given, pass using `api_token: 'token'`") unless (value and not value.empty?)
41
- # UI.user_error!("Couldn't find file at path '#{value}'") unless File.exist?(value)
42
- end),
43
- FastlaneCore::ConfigItem.new(key: :development,
44
- env_name: "FL_TESTS_FROM_XCRESULT_DEVELOPMENT",
45
- description: "Create a development certificate instead of a distribution one",
46
- is_string: false, # true: verifies the input is a string, false: every kind of value
47
- default_value: false) # the default value if the user didn't provide one
48
- ]
49
- end
50
-
51
- def self.output
52
- # Define the shared values you are going to provide
53
- # Example
54
- [
55
- ['TESTS_FROM_XCRESULT_CUSTOM_VALUE', 'A description of what this value contains']
56
- ]
57
- end
58
-
59
- def self.return_value
60
- # If your method provides a return value, you can describe here what it does
61
- end
62
-
63
- def self.authors
64
- # So no one will ever forget your contribution to fastlane :) You are awesome btw!
65
- ["Your GitHub/Twitter Name"]
66
- end
67
-
68
- def self.is_supported?(platform)
69
- # you can do things like
70
- #
71
- # true
72
- #
73
- # platform == :ios
74
- #
75
- # [:ios, :mac].include?(platform)
76
- #
77
-
78
- platform == :ios
79
- end
80
- end
81
- end
82
- end