From 9bc7e21dc0bd679e7b6506f264079630493237d4 Mon Sep 17 00:00:00 2001 From: Christoph Kutzinski Date: Tue, 2 Apr 2013 14:19:49 +0200 Subject: [PATCH] [FIXED JENKINS-7970] JUnit result archiver should only fail builds if there are really no results - i.e. also no skipped tests. --- changelog.html | 4 +++- .../java/hudson/tasks/junit/JUnitResultArchiver.java | 5 +++-- core/src/main/java/hudson/tasks/junit/TestResult.java | 9 +++++++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/changelog.html b/changelog.html index 81faa6cd0f..41af69dcd5 100644 --- a/changelog.html +++ b/changelog.html @@ -55,7 +55,9 @@ Upcoming changes diff --git a/core/src/main/java/hudson/tasks/junit/JUnitResultArchiver.java b/core/src/main/java/hudson/tasks/junit/JUnitResultArchiver.java index 294cd95313..a2548bdc56 100644 --- a/core/src/main/java/hudson/tasks/junit/JUnitResultArchiver.java +++ b/core/src/main/java/hudson/tasks/junit/JUnitResultArchiver.java @@ -57,7 +57,6 @@ import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest; import java.io.IOException; -import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -139,8 +138,10 @@ public class JUnitResultArchiver extends Recorder implements MatrixAggregatable throw new AbortException(Messages.JUnitResultArchiver_BadXML(testResults)); } result.freeze(action); - if (result.getPassCount() == 0 && result.getFailCount() == 0) + if (result.isEmpty()) { + // most likely a configuration error in the job - e.g. false pattern to match the JUnit result files throw new AbortException(Messages.JUnitResultArchiver_ResultIsEmpty()); + } // TODO: Move into JUnitParser [BUG 3123310] List data = new ArrayList(); diff --git a/core/src/main/java/hudson/tasks/junit/TestResult.java b/core/src/main/java/hudson/tasks/junit/TestResult.java index a04467c9b0..db934b8d8d 100644 --- a/core/src/main/java/hudson/tasks/junit/TestResult.java +++ b/core/src/main/java/hudson/tasks/junit/TestResult.java @@ -377,6 +377,15 @@ public final class TestResult extends MetaTabulatedResult { public int getSkipCount() { return skippedTests; } + + /** + * Returns true if this doesn't have any any test results. + * @since 1.511 + */ + @Exported(visibility=999) + public boolean isEmpty() { + return getTotalCount() == 0; + } @Override public List getFailedTests() { -- GitLab