From 714c09d4e6a0a11296b52392fd3ee706d15c5665 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Tue, 11 Feb 2025 17:08:41 -0800 Subject: [PATCH] Migrate from EE 8 to EE 9 --- plugin/pom.xml | 4 +- .../metrics/steps/CoverageRecorder.java | 1 + .../metrics/steps/CoverageViewModel.java | 6 +-- .../metrics/AbstractCoverageITest.java | 7 +-- .../metrics/source/SourceCodeITest.java | 13 +++--- .../metrics/steps/CoveragePluginITest.java | 46 +++++++++---------- .../steps/CoverageTokenMacroITest.java | 2 +- .../metrics/steps/DeltaComputationITest.java | 4 +- .../metrics/steps/GitForensicsITest.java | 11 +++-- .../metrics/steps/QualityGateITest.java | 6 +-- 10 files changed, 51 insertions(+), 49 deletions(-) diff --git a/plugin/pom.xml b/plugin/pom.xml index fff379643..90c2e2373 100644 --- a/plugin/pom.xml +++ b/plugin/pom.xml @@ -5,7 +5,7 @@ org.jvnet.hudson.plugins analysis-pom - 8.6.0 + 10.2.0 @@ -34,7 +34,6 @@ 2.10.0 1.20.4 - 1.87 2.0.0 @@ -299,7 +298,6 @@ org.jenkins-ci.plugins job-dsl - ${job-dsl.version} test diff --git a/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageRecorder.java b/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageRecorder.java index dccc63970..025cef531 100644 --- a/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageRecorder.java +++ b/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageRecorder.java @@ -65,6 +65,7 @@ /** * A pipeline {@code Step} or Freestyle or Maven {@link Recorder} that reads and parses coverage results in a build and * adds the results to the persisted build results. + * *

* Stores the created issues in a {@link Node}. This result is then attached to the {@link Run build} by registering a * {@link CoverageBuildAction}. diff --git a/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageViewModel.java b/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageViewModel.java index 95f26f69b..ce5e73fef 100644 --- a/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageViewModel.java +++ b/plugin/src/main/java/io/jenkins/plugins/coverage/metrics/steps/CoverageViewModel.java @@ -30,8 +30,8 @@ import edu.hm.hafner.util.VisibleForTesting; import edu.umd.cs.findbugs.annotations.CheckForNull; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.StaplerRequest2; +import org.kohsuke.stapler.StaplerResponse2; import org.kohsuke.stapler.bind.JavaScriptMethod; import hudson.model.Api; import hudson.model.ModelObject; @@ -471,7 +471,7 @@ public boolean isSourceFileAvailable(final FileNode coverageNode) { */ @SuppressWarnings("unused") // Called by jelly view @CheckForNull - public Object getDynamic(final String link, final StaplerRequest request, final StaplerResponse response) { + public Object getDynamic(final String link, final StaplerRequest2 request, final StaplerResponse2 response) { if (MODIFIED_LINES_API_URL.equals(link)) { return new ModifiedLinesCoverageApiModel(node); } diff --git a/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/AbstractCoverageITest.java b/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/AbstractCoverageITest.java index 53d25b701..78e904340 100644 --- a/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/AbstractCoverageITest.java +++ b/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/AbstractCoverageITest.java @@ -6,6 +6,7 @@ import org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition; import org.jenkinsci.plugins.workflow.job.WorkflowJob; +import hudson.model.Descriptor; import hudson.model.FreeStyleProject; import io.jenkins.plugins.coverage.metrics.steps.CoverageRecorder; @@ -58,7 +59,7 @@ void addCoverageRecorder(final FreeStyleProject project, project.getPublishersList().add(recorder); } - protected WorkflowJob createPipeline(final Parser parser, final String... fileNames) { + protected WorkflowJob createPipeline(final Parser parser, final String... fileNames) throws Descriptor.FormException { WorkflowJob job = createPipelineWithWorkspaceFiles(fileNames); setPipelineScript(job, @@ -67,14 +68,14 @@ protected WorkflowJob createPipeline(final Parser parser, final String... fileNa return job; } - protected void setPipelineScript(final WorkflowJob job, final String recorderSnippet) { + protected void setPipelineScript(final WorkflowJob job, final String recorderSnippet) throws Descriptor.FormException { job.setDefinition(new CpsFlowDefinition( "node {\n" + recorderSnippet + "\n" + " }\n", true)); } - protected WorkflowJob createDeclarativePipeline(final Parser parser, final String... fileNames) { + protected WorkflowJob createDeclarativePipeline(final Parser parser, final String... fileNames) throws Descriptor.FormException { WorkflowJob job = createPipelineWithWorkspaceFiles(fileNames); job.setDefinition(new CpsFlowDefinition("pipeline {\n" diff --git a/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/source/SourceCodeITest.java b/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/source/SourceCodeITest.java index 7918a7285..b4c7cda0b 100644 --- a/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/source/SourceCodeITest.java +++ b/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/source/SourceCodeITest.java @@ -18,6 +18,7 @@ import org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition; import org.jenkinsci.plugins.workflow.job.WorkflowJob; +import hudson.model.Descriptor; import hudson.model.Run; import io.jenkins.plugins.coverage.metrics.AbstractCoverageITest; @@ -54,18 +55,18 @@ abstract class SourceCodeITest extends AbstractCoverageITest { @ParameterizedTest(name = "Entries of `sourceDirectories` use absolute paths: {0}") @ValueSource(booleans = {true, false}) - void verifySourcesInWorkspaceRoot(final boolean useAbsolutePath) throws IOException { + void verifySourcesInWorkspaceRoot(final boolean useAbsolutePath) throws Exception { runCoverageWithSourceCode("", useAbsolutePath); } @ParameterizedTest(name = "Entries of `sourceDirectories` use absolute paths: {0}") @ValueSource(booleans = {true, false}) - void verifySourcesInWorkspaceSubFolder(final boolean useAbsolutePath) throws IOException { + void verifySourcesInWorkspaceSubFolder(final boolean useAbsolutePath) throws Exception { runCoverageWithSourceCode("sub-dir", useAbsolutePath); } @Test - void verifySourcesInApprovedExternalFolder() throws IOException { + void verifySourcesInApprovedExternalFolder() throws Exception { String directory = createExternalFolder(); PrismConfiguration.getInstance().setSourceDirectories(List.of(new PermittedSourceCodeDirectory(directory))); @@ -75,7 +76,7 @@ void verifySourcesInApprovedExternalFolder() throws IOException { } @Test - void refuseSourceCodePaintingInNotApprovedExternalFolder() throws IOException { + void refuseSourceCodePaintingInNotApprovedExternalFolder() throws Exception { PrismConfiguration.getInstance().setSourceDirectories(List.of()); var localAgent = crateCoverageAgent(); @@ -101,7 +102,7 @@ void refuseSourceCodePaintingInNotApprovedExternalFolder() throws IOException { } private Run runCoverageWithSourceCode(final String sourceDir, final boolean useAbsolutePath) - throws IOException { + throws Exception { var localAgent = crateCoverageAgent(); WorkflowJob job = createPipeline(); @@ -157,7 +158,7 @@ private void copyReports(final hudson.model.Node localAgent, final WorkflowJob j } private CpsFlowDefinition createPipelineWithSourceCode(final SourceCodeRetention sourceCodeRetention, - final String sourceDirectory) { + final String sourceDirectory) throws Descriptor.FormException { return new CpsFlowDefinition("node ('coverage-agent') {" + " recordCoverage " + " tools: [[parser: 'JACOCO', pattern: '" + ACU_COBOL_PARSER_COVERAGE_REPORT + "']], \n" diff --git a/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/CoveragePluginITest.java b/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/CoveragePluginITest.java index 185fb2fb0..3ee67c2c6 100644 --- a/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/CoveragePluginITest.java +++ b/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/CoveragePluginITest.java @@ -62,7 +62,7 @@ void shouldFailWithoutParserInFreestyleJob() { } @Test - void shouldFailWithoutParserInPipeline() { + void shouldFailWithoutParserInPipeline() throws Exception { WorkflowJob job = createPipeline(); setPipelineScript(job, "recordCoverage()"); @@ -88,7 +88,7 @@ void shouldReportErrorWhenNoFilesHaveBeenFoundInFreestyleJob(final Parser parser @EnumSource @ParameterizedTest(name = "{index} => Pipeline with parser {0}") @DisplayName("Report error but do not fail build in pipeline when no input files are found") - void shouldReportErrorWhenNoFilesHaveBeenFoundInPipeline(final Parser parser) { + void shouldReportErrorWhenNoFilesHaveBeenFoundInPipeline(final Parser parser) throws Exception { WorkflowJob job = createPipeline(parser); verifyLogMessageThatNoFilesFound(job); @@ -113,7 +113,7 @@ void shouldFailBuildWhenNoFilesHaveBeenFoundInFreestyleJob(final Parser parser) @EnumSource @ParameterizedTest(name = "{index} => Pipeline with parser {0}") @DisplayName("Report error and fail build in pipeline when no input files are found") - void shouldFailBuildWhenNoFilesHaveBeenFoundInPipeline(final Parser parser) { + void shouldFailBuildWhenNoFilesHaveBeenFoundInPipeline(final Parser parser) throws Exception { WorkflowJob job = createPipeline(); setPipelineScript(job, @@ -138,14 +138,14 @@ void shouldRecordOneJacocoResultInFreestyleJob() { } @Test - void shouldRecordOneJacocoResultInPipeline() { + void shouldRecordOneJacocoResultInPipeline() throws Exception { WorkflowJob job = createPipeline(Parser.JACOCO, JACOCO_ANALYSIS_MODEL_FILE); verifyOneJacocoResult(job); } @Test - void shouldRecordOneJacocoResultInDeclarativePipeline() { + void shouldRecordOneJacocoResultInDeclarativePipeline() throws Exception { WorkflowJob job = createDeclarativePipeline(Parser.JACOCO, JACOCO_ANALYSIS_MODEL_FILE); verifyOneJacocoResult(job); @@ -226,7 +226,7 @@ void shouldRecordTwoJacocoResultsInFreestyleJob() { } @Test - void shouldRecordTwoJacocoResultsInPipeline() { + void shouldRecordTwoJacocoResultsInPipeline() throws Exception { WorkflowJob job = createPipeline(Parser.JACOCO, JACOCO_ANALYSIS_MODEL_FILE, JACOCO_CODING_STYLE_FILE); @@ -234,7 +234,7 @@ void shouldRecordTwoJacocoResultsInPipeline() { } @Test - void shouldRecordTwoJacocoResultsInDeclarativePipeline() { + void shouldRecordTwoJacocoResultsInDeclarativePipeline() throws Exception { WorkflowJob job = createDeclarativePipeline(Parser.JACOCO, JACOCO_ANALYSIS_MODEL_FILE, JACOCO_CODING_STYLE_FILE); @@ -260,14 +260,14 @@ void shouldRecordOneCoberturaResultInFreestyleJob() { } @Test - void shouldRecordOneCoberturaResultInPipeline() { + void shouldRecordOneCoberturaResultInPipeline() throws Exception { WorkflowJob job = createPipeline(Parser.COBERTURA, COBERTURA_HIGHER_COVERAGE_FILE); verifyOneCoberturaResult(job); } @Test - void shouldRecordOneCoberturaResultInDeclarativePipeline() { + void shouldRecordOneCoberturaResultInDeclarativePipeline() throws Exception { WorkflowJob job = createDeclarativePipeline(Parser.COBERTURA, COBERTURA_HIGHER_COVERAGE_FILE); verifyOneCoberturaResult(job); @@ -310,7 +310,7 @@ void shouldRecordCoberturaAndJacocoResultsInFreestyleJob() { } @Test - void shouldRecordCoberturaAndJacocoResultsInPipeline() { + void shouldRecordCoberturaAndJacocoResultsInPipeline() throws Exception { WorkflowJob job = createPipelineWithWorkspaceFiles(JACOCO_ANALYSIS_MODEL_FILE, COBERTURA_HIGHER_COVERAGE_FILE); setPipelineScript(job, @@ -323,7 +323,7 @@ void shouldRecordCoberturaAndJacocoResultsInPipeline() { } @Test - void shouldRecordCoberturaAndJacocoResultsInDeclarativePipeline() { + void shouldRecordCoberturaAndJacocoResultsInDeclarativePipeline() throws Exception { WorkflowJob job = createPipelineWithWorkspaceFiles(JACOCO_ANALYSIS_MODEL_FILE, COBERTURA_HIGHER_COVERAGE_FILE); job.setDefinition(new CpsFlowDefinition("pipeline {\n" @@ -426,7 +426,7 @@ private void verifyOpenCoverResults(final Run build) { } @Test @Issue("JENKINS-72595") - void shouldGracefullyHandleBomEncodedFiles() { + void shouldGracefullyHandleBomEncodedFiles() throws Exception { assumeThatTestIsRunningOnUnix(); var fileName = "opencover-with-bom.xml"; @@ -441,7 +441,7 @@ void shouldGracefullyHandleBomEncodedFiles() { } @Test - void shouldRecordOneNUnitResultInFreestyleJob() { + void shouldRecordOneNUnitResultInFreestyleJob() throws Exception { FreeStyleProject project = createFreestyleJob(Parser.NUNIT, "nunit.xml"); Run build = buildSuccessfully(project); @@ -546,7 +546,7 @@ private static CoverageBuilder createLineCoverageBuilder() { } @Test - void shouldRecordResultsWithDifferentId() { + void shouldRecordResultsWithDifferentId() throws Exception { WorkflowJob job = createPipelineWithWorkspaceFiles(JACOCO_ANALYSIS_MODEL_FILE, COBERTURA_HIGHER_COVERAGE_FILE); setPipelineScript(job, @@ -581,7 +581,7 @@ void shouldRecordResultsWithDifferentId() { } @Test @Issue("785") - void shouldIgnoreErrors() { + void shouldIgnoreErrors() throws Exception { WorkflowJob job = createPipeline(); copyFileToWorkspace(job, "cobertura-duplicate-methods.xml", "cobertura.xml"); job.setDefinition(new CpsFlowDefinition( @@ -606,7 +606,7 @@ void shouldIgnoreErrors() { } @Test - void shouldIgnoreEmptyListOfFiles() { + void shouldIgnoreEmptyListOfFiles() throws Exception { WorkflowJob job = createPipeline(); job.setDefinition(new CpsFlowDefinition( "node {\n" @@ -623,7 +623,7 @@ void shouldIgnoreEmptyListOfFiles() { } @Test - void shouldParseFileWithJaCoCo() { + void shouldParseFileWithJaCoCo() throws Exception { WorkflowJob job = createPipeline(); copyFilesToWorkspace(job, "jacoco.xml"); job.setDefinition(new CpsFlowDefinition( @@ -681,14 +681,14 @@ void shouldRecordOneVectorCastResultInFreestyleJob() { } @Test - void shouldRecordOneVectorCastResultInPipeline() { + void shouldRecordOneVectorCastResultInPipeline() throws Exception { WorkflowJob job = createPipeline(Parser.VECTORCAST, VECTORCAST_HIGHER_COVERAGE_FILE); verifyOneVectorCastResult(job); } @Test - void shouldRecordOneVectorCastResultInDeclarativePipeline() { + void shouldRecordOneVectorCastResultInDeclarativePipeline() throws Exception { WorkflowJob job = createDeclarativePipeline(Parser.VECTORCAST, VECTORCAST_HIGHER_COVERAGE_FILE); verifyOneVectorCastResult(job); @@ -798,7 +798,7 @@ void shouldRecordVectorCastAndJacocoResultsInFreestyleJob() { } @Test - void shouldRecordVectorCastAndJacocoResultsInPipeline() { + void shouldRecordVectorCastAndJacocoResultsInPipeline() throws Exception { WorkflowJob job = createPipelineWithWorkspaceFiles(JACOCO_ANALYSIS_MODEL_FILE, VECTORCAST_HIGHER_COVERAGE_FILE); setPipelineScript(job, @@ -811,7 +811,7 @@ void shouldRecordVectorCastAndJacocoResultsInPipeline() { } @Test - void shouldRecordVectorCastAndJacocoResultsInDeclarativePipeline() { + void shouldRecordVectorCastAndJacocoResultsInDeclarativePipeline() throws Exception { WorkflowJob job = createPipelineWithWorkspaceFiles(JACOCO_ANALYSIS_MODEL_FILE, VECTORCAST_HIGHER_COVERAGE_FILE); job.setDefinition(new CpsFlowDefinition("pipeline {\n" @@ -893,7 +893,7 @@ private void verifyForOneVectorCastAndOneJacoco(final ParameterizedJob pro } @Test - void shouldRecordVerctorCastResultsWithDifferentId() { + void shouldRecordVerctorCastResultsWithDifferentId() throws Exception { WorkflowJob job = createPipelineWithWorkspaceFiles(JACOCO_ANALYSIS_MODEL_FILE, VECTORCAST_HIGHER_COVERAGE_FILE); setPipelineScript(job, @@ -928,7 +928,7 @@ void shouldRecordVerctorCastResultsWithDifferentId() { } @Test - void shouldParseFileWithVectorCast() { + void shouldParseFileWithVectorCast() throws Exception { WorkflowJob job = createPipeline(); copyFileToWorkspace(job, "vectorcast-statement-mcdc-fcc.xml", "xml_data/cobertura/coverage_results_test.xml"); job.setDefinition(new CpsFlowDefinition( diff --git a/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/CoverageTokenMacroITest.java b/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/CoverageTokenMacroITest.java index 1cb8ff1e6..35b8d9742 100644 --- a/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/CoverageTokenMacroITest.java +++ b/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/CoverageTokenMacroITest.java @@ -16,7 +16,7 @@ */ class CoverageTokenMacroITest extends AbstractCoverageITest { @Test - void shouldUseQualityGateInPipeline() { + void shouldUseQualityGateInPipeline() throws Exception { WorkflowJob project = createPipelineWithWorkspaceFiles(JACOCO_ANALYSIS_MODEL_FILE); setPipelineScript(project, diff --git a/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/DeltaComputationITest.java b/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/DeltaComputationITest.java index eec75813c..d56fcd8f6 100644 --- a/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/DeltaComputationITest.java +++ b/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/DeltaComputationITest.java @@ -44,7 +44,7 @@ void shouldComputeDeltaInFreestyleJob() { } @Test - void shouldComputeDeltaInPipeline() { + void shouldComputeDeltaInPipeline() throws Exception { WorkflowJob job = createPipeline(Parser.JACOCO, JACOCO_ANALYSIS_MODEL_FILE, JACOCO_CODING_STYLE_FILE); Run firstBuild = buildSuccessfully(job); @@ -60,7 +60,7 @@ void shouldComputeDeltaInPipeline() { } @Test - void shouldSelectResultByIdInReferenceBuild() { + void shouldSelectResultByIdInReferenceBuild() throws Exception { WorkflowJob job = createPipelineWithWorkspaceFiles( JACOCO_ANALYSIS_MODEL_FILE, JACOCO_CODING_STYLE_FILE, "mutations.xml", "mutations-codingstyle.xml"); diff --git a/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/GitForensicsITest.java b/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/GitForensicsITest.java index 1d3bd21e3..ce6dc8b71 100644 --- a/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/GitForensicsITest.java +++ b/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/GitForensicsITest.java @@ -21,6 +21,7 @@ import org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition; import org.jenkinsci.plugins.workflow.flow.FlowDefinition; import org.jenkinsci.plugins.workflow.job.WorkflowJob; +import hudson.model.Descriptor; import hudson.model.FreeStyleProject; import hudson.model.Node; import hudson.model.Result; @@ -67,7 +68,7 @@ class GitForensicsITest extends AbstractCoverageITest { }) @DisplayName("Should compute delta report and store selected source files") void shouldComputeDeltaInPipelineOnDockerAgent(final SourceCodeRetention sourceCodeRetention, - final int expectedNumberOfFilesToBeStored) { + final int expectedNumberOfFilesToBeStored) throws Exception { assumeThat(isWindows()).as("Running on Windows").isFalse(); Node agent = createDockerAgent(AGENT_CONTAINER); @@ -103,7 +104,7 @@ void shouldComputeDeltaInPipelineOnDockerAgent(final SourceCodeRetention sourceC "MODIFIED_LINES_DELTA, -1, -4.55" }) @DisplayName("Should compute quality gates") - void shouldVerifyQualityGate(final Baseline baseline, final double threshold, final double value) { + void shouldVerifyQualityGate(final Baseline baseline, final double threshold, final double value) throws Exception { assumeThat(isWindows()).as("Running on Windows").isFalse(); Node agent = createDockerAgent(AGENT_CONTAINER); @@ -307,7 +308,7 @@ private void verifyModifiedLinesCoverageApi(final Run build) { * * @return the created definition */ - private FlowDefinition createPipelineForCommit(final String node, final String commit, final String fileName) { + private FlowDefinition createPipelineForCommit(final String node, final String commit, final String fileName) throws Descriptor.FormException { return createPipelineForCommit(node, commit, fileName, SourceCodeRetention.EVERY_BUILD); } @@ -326,12 +327,12 @@ private FlowDefinition createPipelineForCommit(final String node, final String c * @return the created definition */ private FlowDefinition createPipelineForCommit(final String node, final String commit, final String fileName, - final SourceCodeRetention sourceCodeRetentionStrategy) { + final SourceCodeRetention sourceCodeRetentionStrategy) throws Descriptor.FormException { return createPipelineForCommit(node, commit, fileName, sourceCodeRetentionStrategy, StringUtils.EMPTY); } private FlowDefinition createPipelineForCommit(final String node, final String commit, final String fileName, - final SourceCodeRetention sourceCodeRetentionStrategy, final String qualityGate) { + final SourceCodeRetention sourceCodeRetentionStrategy, final String qualityGate) throws Descriptor.FormException { return new CpsFlowDefinition(node + " {" + " checkout([$class: 'GitSCM', " + " branches: [[name: '" + commit + "' ]],\n" diff --git a/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/QualityGateITest.java b/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/QualityGateITest.java index d614d375f..e6361193a 100644 --- a/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/QualityGateITest.java +++ b/plugin/src/test/java/io/jenkins/plugins/coverage/metrics/steps/QualityGateITest.java @@ -31,7 +31,7 @@ */ class QualityGateITest extends AbstractCoverageITest { @Test - void shouldNotHaveQualityGate() { + void shouldNotHaveQualityGate() throws Exception { WorkflowJob job = createPipeline(Parser.JACOCO, JACOCO_ANALYSIS_MODEL_FILE); Run build = buildWithResult(job, Result.SUCCESS); @@ -102,7 +102,7 @@ void shouldFailQualityGateWithFailure() { } @Test - void shouldUseQualityGateInPipeline() { + void shouldUseQualityGateInPipeline() throws Exception { WorkflowJob project = createPipelineWithWorkspaceFiles(JACOCO_ANALYSIS_MODEL_FILE); setPipelineScript(project, @@ -127,7 +127,7 @@ void shouldUseQualityGateInPipeline() { } @Test @Issue("JENKINS-72059") - void shouldUseStageQualityGateInPipeline() { + void shouldUseStageQualityGateInPipeline() throws Exception { WorkflowJob project = createPipelineWithWorkspaceFiles(JACOCO_ANALYSIS_MODEL_FILE); setPipelineScript(project,