Class: Fastlane::Actions::TestsFromJunitAction
- Inherits:
-
Action
- Object
- Action
- Fastlane::Actions::TestsFromJunitAction
- Defined in:
- lib/fastlane/plugin/test_center/actions/tests_from_junit.rb
Documentation collapse
- .authors ⇒ Object
- .available_options ⇒ Object
- .description ⇒ Object
- .is_supported?(platform) ⇒ Boolean
- .return_value ⇒ Object
Class Method Summary collapse
Class Method Details
.authors ⇒ Object
60 61 62 |
# File 'lib/fastlane/plugin/test_center/actions/tests_from_junit.rb', line 60 def self. ["lyndsey-ferguson/lyndseydf"] end |
.available_options ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/fastlane/plugin/test_center/actions/tests_from_junit.rb', line 39 def self. [ FastlaneCore::ConfigItem.new( key: :junit, env_name: "FL_SUPPRESS_TESTS_FROM_JUNIT_JUNIT_REPORT", # The name of the environment variable description: "The junit xml report file from which to collect the tests to suppress", verify_block: proc do |path| UI.user_error!("Error: cannot find the junit xml report file '#{path}'") unless File.exist?(path) end ) ] end |
.description ⇒ Object
35 36 37 |
# File 'lib/fastlane/plugin/test_center/actions/tests_from_junit.rb', line 35 def self.description "Retrieves the failing and passing tests as reported in a junit xml file" end |
.is_supported?(platform) ⇒ Boolean
64 65 66 |
# File 'lib/fastlane/plugin/test_center/actions/tests_from_junit.rb', line 64 def self.is_supported?(platform) platform == :ios end |
.return_value ⇒ Object
52 53 54 55 56 57 58 |
# File 'lib/fastlane/plugin/test_center/actions/tests_from_junit.rb', line 52 def self.return_value "A Hash with information about the test results:\r\n" \ "failed: an Array of the failed test identifiers\r\n" \ "passing: an Array of the passing test identifiers\r\n" \ "failure_details: a Hash with failed test identifiers as the key, and " \ "a Hash with :message and :location details for the failed test" end |
.run(params) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/fastlane/plugin/test_center/actions/tests_from_junit.rb', line 4 def self.run(params) report = ::TestCenter::Helper::XcodeJunit::Report.new(params[:junit]) passing = [] failed = [] failure_details = {} report.testables.each do |testable| testable.testsuites.each do |testsuite| testsuite.testcases.each do |testcase| if testcase.passed? passing << testcase.identifier else failed << testcase.identifier failure_details[testcase.identifier] = { message: testcase., location: testcase.location } end end end end { failed: failed, passing: passing, failure_details: failure_details } end |