From 451d8b494d84182217e29742f6f10439d1dc92a8 Mon Sep 17 00:00:00 2001 From: Ulli Hafner Date: Mon, 27 Mar 2023 21:39:04 +0200 Subject: [PATCH] Do not show details in title, just the percentages. --- .../steps/CoverageChecksPublisher.java | 57 ++++++++++--------- .../steps/CoverageChecksPublisherTest.java | 6 +- 2 files changed, 34 insertions(+), 29 deletions(-) diff --git a/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageChecksPublisher.java b/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageChecksPublisher.java index 62ef594a6..efcc09c24 100644 --- a/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageChecksPublisher.java +++ b/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageChecksPublisher.java @@ -6,11 +6,13 @@ import java.util.List; import java.util.NavigableMap; import java.util.NavigableSet; +import java.util.Optional; import java.util.Set; import java.util.TreeMap; import java.util.TreeSet; import java.util.stream.Collectors; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.Fraction; import edu.hm.hafner.coverage.Coverage; @@ -97,32 +99,36 @@ ChecksDetails extractChecksDetails() { } private String getChecksTitle() { - Baseline baseline = selectBaseline(); return getMetricsForTitle().stream() - .filter(metric -> action.hasValue(baseline, metric)) - .map(metric -> format(baseline, metric)) + .map(this::format) + .flatMap(Optional::stream) .collect(Collectors.joining(", ", "", ".")); } + private Optional format(final Metric metric) { + var baseline = selectBaseline(); + return action.getValueForMetric(baseline, metric) + .map(value -> formatValue(baseline, metric, value)); + + } + private Baseline selectBaseline() { if (action.hasBaselineResult(Baseline.MODIFIED_LINES)) { return Baseline.MODIFIED_LINES; } - else { - return Baseline.PROJECT; - } + return Baseline.PROJECT; } - private String format(final Baseline baseline, final Metric metric) { - String suffix; + private String formatValue(final Baseline baseline, final Metric metric, final Value value) { + return String.format("%s: %s%s", + FORMATTER.getDisplayName(metric), FORMATTER.format(value), getDeltaDetails(baseline, metric)); + } + + private String getDeltaDetails(final Baseline baseline, final Metric metric) { if (action.hasDelta(baseline, metric)) { - suffix = String.format(" (%s)", action.formatDelta(baseline, metric)); + return String.format(" (%s)", action.formatDelta(baseline, metric)); } - else { - suffix = ""; - } - return String.format("%s: %s%s", - FORMATTER.getDisplayName(metric), action.formatValue(baseline, metric), suffix); + return StringUtils.EMPTY; } private NavigableSet getMetricsForTitle() { @@ -131,10 +137,9 @@ private NavigableSet getMetricsForTitle() { } private String getSummary() { - var root = rootNode; return getOverallCoverageSummary() + "\n\n" + getQualityGatesSummary() + "\n\n" - + getProjectMetricsSummary(root); + + getProjectMetricsSummary(rootNode); } private List getAnnotations() { @@ -142,17 +147,8 @@ private List getAnnotations() { return List.of(); } - var tree = rootNode; - Node filtered; - if (annotationScope == ChecksAnnotationScope.ALL_LINES) { - filtered = tree; - } - else { - filtered = tree.filterByModifiedLines(); - } - var annotations = new ArrayList(); - for (var fileNode : filtered.getAllFileNodes()) { + for (var fileNode : filterAnnotations().getAllFileNodes()) { annotations.addAll(getMissingLines(fileNode)); annotations.addAll(getPartiallyCoveredLines(fileNode)); annotations.addAll(getSurvivedMutations(fileNode)); @@ -160,6 +156,15 @@ private List getAnnotations() { return annotations; } + private Node filterAnnotations() { + if (annotationScope == ChecksAnnotationScope.ALL_LINES) { + return rootNode; + } + else { + return rootNode.filterByModifiedLines(); + } + } + private Collection getMissingLines(final FileNode fileNode) { var builder = createAnnotationBuilder(fileNode).withTitle("Not covered line"); diff --git a/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/CoverageChecksPublisherTest.java b/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/CoverageChecksPublisherTest.java index 144a33d32..dfa9f68e8 100644 --- a/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/CoverageChecksPublisherTest.java +++ b/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/CoverageChecksPublisherTest.java @@ -48,7 +48,7 @@ void shouldShowProjectBaselineForJaCoCo() { var publisher = new CoverageChecksPublisher(createActionWithoutDelta(result), result, REPORT_NAME, ChecksAnnotationScope.SKIP, createJenkins()); - assertThatTitleIs(publisher, "Line Coverage: 91.02% (294/323), Branch Coverage: 93.97% (109/116)."); + assertThatTitleIs(publisher, "Line Coverage: 91.02%, Branch Coverage: 93.97%."); } @Test @@ -58,7 +58,7 @@ void shouldShowProjectBaselineForPit() { var publisher = new CoverageChecksPublisher(createActionWithoutDelta(result), result, REPORT_NAME, ChecksAnnotationScope.SKIP, createJenkins()); - assertThatTitleIs(publisher, "Line Coverage: 93.84% (198/211), Mutation Coverage: 90.24% (222/246)."); + assertThatTitleIs(publisher, "Line Coverage: 93.84%, Mutation Coverage: 90.24%."); } private void assertThatTitleIs(final CoverageChecksPublisher publisher, final String expectedTitle) { @@ -92,7 +92,7 @@ private void assertThatDetailsAreCorrect(final ChecksDetails checkDetails, final assertThat(checkDetails.getOutput()).isPresent().get().satisfies(output -> { assertThat(output.getTitle()).isPresent() .get() - .isEqualTo("Line Coverage: 50.00% (1/2) (+50.00%)."); + .isEqualTo("Line Coverage: 50.00% (+50.00%)."); assertThat(output.getText()).isEmpty(); assertChecksAnnotations(output, expectedAnnotations); assertSummary(output);