From 955c3701fb272b3c399572f3fb81589f14ae5d63 Mon Sep 17 00:00:00 2001 From: Bill Collins Date: Sat, 5 Dec 2020 16:26:47 +0000 Subject: [PATCH] Set 'No test results found' title on checks if no test results found --- .../junit/checks/JUnitChecksPublisher.java | 5 ++++ .../checks/JUnitChecksPublisherTest.java | 23 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/main/java/io/jenkins/plugins/junit/checks/JUnitChecksPublisher.java b/src/main/java/io/jenkins/plugins/junit/checks/JUnitChecksPublisher.java index ad7e2f790..21c97da8e 100644 --- a/src/main/java/io/jenkins/plugins/junit/checks/JUnitChecksPublisher.java +++ b/src/main/java/io/jenkins/plugins/junit/checks/JUnitChecksPublisher.java @@ -117,6 +117,11 @@ private String codeTextFencedBlock(String body) { } private String extractChecksTitle() { + + if (summary.getTotalCount() == 0) { + return "No test results found"; + } + StringBuilder builder = new StringBuilder(); if (summary.getFailCount() == 1) { diff --git a/src/test/java/io/jenkins/plugins/junit/checks/JUnitChecksPublisherTest.java b/src/test/java/io/jenkins/plugins/junit/checks/JUnitChecksPublisherTest.java index 4bc40ccec..1faa17389 100644 --- a/src/test/java/io/jenkins/plugins/junit/checks/JUnitChecksPublisherTest.java +++ b/src/test/java/io/jenkins/plugins/junit/checks/JUnitChecksPublisherTest.java @@ -209,4 +209,27 @@ public void extractChecksDetailsNestedStages() throws Exception { assertThat(checksDetails.getName().get(), is("Tests / first / second")); } + + @Test + @SuppressWarnings("OptionalGetWithoutIsPresent") + public void extractChecksDetailsEmptySuite() throws Exception { + WorkflowJob j = rule.jenkins.createProject(WorkflowJob.class, "singleStep"); + j.setDefinition(new CpsFlowDefinition("stage('first') {\n" + + " node {\n" + + " def results = junit(testResults: '*.xml', allowEmptyResults: true)\n" + + " assert results.totalCount == 0\n" + + " }\n" + + "}\n", true)); + + rule.buildAndAssertSuccess(j); + + ChecksDetails checksDetails = getDetail(); + + assertThat(checksDetails.getConclusion(), is(ChecksConclusion.SUCCESS)); + + ChecksOutput output = checksDetails.getOutput().get(); + + assertThat(output.getTitle().get(), is("No test results found")); + assertThat(output.getText().get(), is("")); + } }