From 9fbb148af40aab8e1d2ca011d71991b3fe72d88c Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Sat, 11 Sep 2021 21:07:47 +0200 Subject: [PATCH] Improve JUnit 5 adapter for successful runs --- lib/junit5_adapter.rb | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) 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