Class: TestCenter::Helper::TestCollector
- Inherits:
-
Object
- Object
- TestCenter::Helper::TestCollector
- Defined in:
- lib/fastlane/plugin/test_center/helper/test_collector.rb
Instance Method Summary collapse
- #default_derived_data_path(options) ⇒ Object
- #derived_testrun_path(derived_data_path, scheme) ⇒ Object
-
#initialize(options) ⇒ TestCollector
constructor
A new instance of TestCollector.
- #only_testing_to_testables_tests ⇒ Object
- #testables ⇒ Object
- #testables_tests ⇒ Object
Constructor Details
#initialize(options) ⇒ TestCollector
Returns a new instance of TestCollector.
8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/fastlane/plugin/test_center/helper/test_collector.rb', line 8 def initialize() unless [:xctestrun] || [:derived_data_path] [:derived_data_path] = default_derived_data_path() end @xctestrun_path = [:xctestrun] || derived_testrun_path([:derived_data_path], [:scheme]) unless @xctestrun_path && File.exist?(@xctestrun_path) FastlaneCore::UI.user_error!("Error: cannot find xctestrun file '#{@xctestrun_path}'") end @only_testing = [:only_testing] @skip_testing = [:skip_testing] end |
Instance Method Details
#default_derived_data_path(options) ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/fastlane/plugin/test_center/helper/test_collector.rb', line 20 def default_derived_data_path() Scan.project = FastlaneCore::Project.new( .select { |k, v| %i[workspace project].include?(k) } ) project_derived_data_path = Scan.project.build_settings(key: "BUILT_PRODUCTS_DIR") File.("../../..", project_derived_data_path) end |
#derived_testrun_path(derived_data_path, scheme) ⇒ Object
28 29 30 |
# File 'lib/fastlane/plugin/test_center/helper/test_collector.rb', line 28 def derived_testrun_path(derived_data_path, scheme) Dir.glob("#{derived_data_path}/Build/Products/#{scheme}*.xctestrun").first end |
#only_testing_to_testables_tests ⇒ Object
43 44 45 46 47 48 49 50 |
# File 'lib/fastlane/plugin/test_center/helper/test_collector.rb', line 43 def only_testing_to_testables_tests tests = Hash.new { |h, k| h[k] = [] } @only_testing.sort.each do |test_identifier| testable = test_identifier.split('/', 2)[0] tests[testable] << test_identifier end tests end |
#testables ⇒ Object
32 33 34 35 36 37 38 39 40 41 |
# File 'lib/fastlane/plugin/test_center/helper/test_collector.rb', line 32 def testables unless @testables if @only_testing @testables ||= only_testing_to_testables_tests.keys else @testables ||= Plist.parse_xml(@xctestrun_path).keys end end @testables end |
#testables_tests ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/fastlane/plugin/test_center/helper/test_collector.rb', line 52 def testables_tests unless @testables_tests if @only_testing @testables_tests = only_testing_to_testables_tests else config = FastlaneCore::Configuration.create(::Fastlane::Actions::TestsFromXctestrunAction., xctestrun: @xctestrun_path) @testables_tests = ::Fastlane::Actions::TestsFromXctestrunAction.run(config) if @skip_testing skipped_testable_tests = Hash.new { |h, k| h[k] = [] } @skip_testing.sort.each do |skipped_test_identifier| testable = skipped_test_identifier.split('/', 2)[0] skipped_testable_tests[testable] << skipped_test_identifier end @testables_tests.each_key do |testable| @testables_tests[testable] -= skipped_testable_tests[testable] end end end end @testables_tests end |