diff --git a/lib/junit5_adapter.rb b/lib/junit5_adapter.rb index 6b95f3ad..d442fdfc 100644 --- a/lib/junit5_adapter.rb +++ b/lib/junit5_adapter.rb @@ -3,19 +3,18 @@ class Junit5Adapter < TestingFrameworkAdapter COUNT_REGEXP = /(\d+) tests found/.freeze FAILURES_REGEXP = /(\d+) tests failed/.freeze - SUCCESS_REGEXP = /(\d+) tests successful\)/.freeze - ASSERTION_ERROR_REGEXP = /java\.lang\.AssertionError:?\s(.*?)\torg.junit|org\.junit\.ComparisonFailure:\s(.*?)\torg.junit/m.freeze + ASSERTION_ERROR_REGEXP = /java\.lang\.AssertionError:?\s(.*?)\s*org.junit|org\.junit\.ComparisonFailure:\s(.*?)\s*org.junit/m.freeze def self.framework_name 'JUnit 5' end def parse_output(output) - if SUCCESS_REGEXP.match(output[:stdout]) - {count: Regexp.last_match(1).to_i, passed: Regexp.last_match(1).to_i} + count = COUNT_REGEXP.match(output[:stdout]).try(:captures).try(:first).try(:to_i) || 0 + failed = FAILURES_REGEXP.match(output[:stdout]).try(:captures).try(:first).try(:to_i) || 0 + if failed.zero? + {count: count, passed: count} else - count = COUNT_REGEXP.match(output[:stdout]).try(:captures).try(:first).try(:to_i) || 0 - failed = FAILURES_REGEXP.match(output[:stdout]).try(:captures).try(:first).try(:to_i) || 0 error_matches = ASSERTION_ERROR_REGEXP.match(output[:stdout]).try(:captures) || [] {count: count, failed: failed, error_messages: error_matches} end