Search in sources :

Example 6 with Build

use of org.jenkinsci.test.acceptance.po.Build in project acceptance-test-harness by jenkinsci.

the class CheckStylePluginTest method should_report_new_and_fixed_warnings_in_consecutive_builds.

/**
 * Runs job two times to check if new and fixed warnings are displayed. Afterwards, the first build
 * is deleted and Jenkins is restarted. Then the results of the second build are validated again: the detail
 * pages should then show the same results (see JENKINS-24940).
 */
@Test
@Issue("24940")
public void should_report_new_and_fixed_warnings_in_consecutive_builds() {
    assumeTrue("This test requires a restartable Jenkins", jenkins.canRestart());
    FreeStyleJob job = createFreeStyleJob();
    Build firstBuild = buildJobAndWait(job);
    replaceResource(FILE_FOR_2ND_RUN, job);
    Build lastBuild = buildSuccessfulJob(job);
    assertThatCheckStyleResultExists(job, lastBuild);
    lastBuild.open();
    verifyWarningCounts(lastBuild);
    firstBuild.delete();
    jenkins.restart();
    lastBuild.open();
    verifyWarningCounts(lastBuild);
}
Also used : Build(org.jenkinsci.test.acceptance.po.Build) FreeStyleJob(org.jenkinsci.test.acceptance.po.FreeStyleJob) Issue(org.jvnet.hudson.test.Issue) Test(org.junit.Test)

Example 7 with Build

use of org.jenkinsci.test.acceptance.po.Build in project acceptance-test-harness by jenkinsci.

the class CheckStylePluginTest method should_link_to_source_code_in_real_project.

/**
 * Builds an existing freestyle project using actual maven commands and checks if new warning are displayed. Also
 * verifies that the warnings have links to the actual source code and the source code view shows the affected
 * line.
 */
@Test
public void should_link_to_source_code_in_real_project() {
    FreeStyleJob job = createJob(jenkins, CHECKSTYLE_PLUGIN_ROOT + SAMPLE_CHECKSTYLE_PROJECT, FreeStyleJob.class, CheckStyleFreestyleSettings.class, settings -> settings.pattern.set("target/checkstyle-result.xml"));
    setMavenGoal(job, "clean package checkstyle:checkstyle");
    Build build = buildSuccessfulJob(job);
    assertThatCheckStyleResultExists(job, build);
    build.open();
    CheckStyleAction checkstyle = new CheckStyleAction(build);
    checkstyle.open();
    assertThat(checkstyle.getNumberOfNewWarnings(), is(12));
    SortedMap<String, String> expectedContent = new TreeMap<>();
    expectedContent.put("Main.java:0", "JavadocPackageCheck");
    expectedContent.put("Main.java:2", "HideUtilityClassConstructorCheck");
    expectedContent.put("Main.java:4", "JavadocVariableCheck");
    expectedContent.put("Main.java:6", "FinalParametersCheck");
    expectedContent.put("Main.java:9", "WhitespaceAroundCheck");
    expectedContent.put("Main.java:13", "WhitespaceAroundCheck");
    expectedContent.put("Main.java:18", "WhitespaceAroundCheck");
    expectedContent.put("Main.java:23", "JavadocMethodCheck");
    expectedContent.put("Main.java:24", "MagicNumberCheck");
    expectedContent.put("Main.java:27", "JavadocMethodCheck");
    assertThat(checkstyle.getWarningsTabContents(), is(expectedContent));
    verifySourceLine(checkstyle, "Main.java", 27, "27     public static int return8() {", "Checks the Javadoc of a method or constructor.");
}
Also used : CheckStyleAction(org.jenkinsci.test.acceptance.plugins.checkstyle.CheckStyleAction) Build(org.jenkinsci.test.acceptance.po.Build) FreeStyleJob(org.jenkinsci.test.acceptance.po.FreeStyleJob) TreeMap(java.util.TreeMap) Test(org.junit.Test)

Example 8 with Build

use of org.jenkinsci.test.acceptance.po.Build in project acceptance-test-harness by jenkinsci.

the class CheckStylePluginTest method should_resolve_environment_variables.

/**
 * Verifies that environment variables are expanded in the file name pattern.
 */
@Test
@Issue("JENKINS-30735")
@WithPlugins({ "envinject", "analysis-core@1.77", "checkstyle@3.46" })
public void should_resolve_environment_variables() {
    FreeStyleJob job = createFreeStyleJob(settings -> settings.pattern.set("checkstyle${ENV_DASH}result.xml"));
    job.configure(() -> new EnvInjectConfig.Environment(job).properties.sendKeys("ENV_DASH=-"));
    Build build = buildSuccessfulJob(job);
    assertThatCheckStyleResultExists(job, build);
    CheckStyleAction action = new CheckStyleAction(job);
    assertThatWarningsCountInSummaryIs(action, TOTAL_NUMBER_OF_WARNINGS);
    assertThatNewWarningsCountInSummaryIs(action, TOTAL_NUMBER_OF_WARNINGS);
    assertThat(build.getConsole(), containsRegexp("\\[CHECKSTYLE\\] Searching for all files in .* that match the pattern checkstyle-result.xml\n"));
}
Also used : CheckStyleAction(org.jenkinsci.test.acceptance.plugins.checkstyle.CheckStyleAction) EnvInjectConfig(org.jenkinsci.test.acceptance.plugins.envinject.EnvInjectConfig) Build(org.jenkinsci.test.acceptance.po.Build) FreeStyleJob(org.jenkinsci.test.acceptance.po.FreeStyleJob) Issue(org.jvnet.hudson.test.Issue) Test(org.junit.Test) WithPlugins(org.jenkinsci.test.acceptance.junit.WithPlugins)

Example 9 with Build

use of org.jenkinsci.test.acceptance.po.Build in project acceptance-test-harness by jenkinsci.

the class OpenstackCloudPluginTest method useSingleUseSlave.

@Test
@WithCredentials(credentialType = WithCredentials.SSH_USERNAME_PRIVATE_KEY, values = { MACHINE_USERNAME, "/openstack_plugin/unsafe" })
@TestActivation({ "HARDWARE_ID", "IMAGE_ID", "KEY_PAIR_NAME", "NETWORK_ID" })
public void useSingleUseSlave() {
    configureCloudInit("cloud-init");
    configureProvisioning("SSH", "label");
    FreeStyleJob job = jenkins.jobs.create();
    job.configure();
    job.setLabelExpression("label");
    job.addBuildWrapper(OpenstackOneOffSlave.class);
    job.save();
    Build build = job.scheduleBuild().waitUntilFinished(PROVISIONING_TIMEOUT).shouldSucceed();
    assertTrue(build.getNode().isTemporarillyOffline());
}
Also used : MatrixBuild(org.jenkinsci.test.acceptance.po.MatrixBuild) Build(org.jenkinsci.test.acceptance.po.Build) FreeStyleJob(org.jenkinsci.test.acceptance.po.FreeStyleJob) WithCredentials(org.jenkinsci.test.acceptance.junit.WithCredentials) AbstractJUnitTest(org.jenkinsci.test.acceptance.junit.AbstractJUnitTest) Test(org.junit.Test) TestActivation(org.jenkinsci.test.acceptance.junit.TestActivation)

Example 10 with Build

use of org.jenkinsci.test.acceptance.po.Build in project acceptance-test-harness by jenkinsci.

the class PmdPluginTest method should_collect_warnings_even_if_build_failed.

/**
 * Checks that PMD runs even if the build failed if the property 'canRunOnFailed' is set.
 */
@Test
public void should_collect_warnings_even_if_build_failed() {
    FreeStyleJob job = createFreeStyleJob(settings -> {
        settings.pattern.set(PATTERN_WITHOUT_WARNINGS);
        settings.setCanRunOnFailed(true);
    });
    job.configure(() -> job.addShellStep("false"));
    Build lastBuild = buildFailingJob(job);
    assertThatBuildHasNoWarnings(lastBuild);
}
Also used : Build(org.jenkinsci.test.acceptance.po.Build) FreeStyleJob(org.jenkinsci.test.acceptance.po.FreeStyleJob) Test(org.junit.Test)

Aggregations

Build (org.jenkinsci.test.acceptance.po.Build)175 Test (org.junit.Test)157 FreeStyleJob (org.jenkinsci.test.acceptance.po.FreeStyleJob)113 AbstractJUnitTest (org.jenkinsci.test.acceptance.junit.AbstractJUnitTest)101 WithPlugins (org.jenkinsci.test.acceptance.junit.WithPlugins)40 DockerTest (org.jenkinsci.test.acceptance.junit.DockerTest)22 WorkflowJob (org.jenkinsci.test.acceptance.po.WorkflowJob)20 Issue (org.jvnet.hudson.test.Issue)18 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)14 GitRepo (org.jenkinsci.test.acceptance.plugins.git.GitRepo)13 JobDslBuildStep (org.jenkinsci.test.acceptance.plugins.job_dsl.JobDslBuildStep)13 Pattern (java.util.regex.Pattern)11 Job (org.jenkinsci.test.acceptance.po.Job)11 SmokeTest (org.jenkinsci.test.acceptance.junit.SmokeTest)9 WithCredentials (org.jenkinsci.test.acceptance.junit.WithCredentials)9 GitScm (org.jenkinsci.test.acceptance.plugins.git.GitScm)9 Matchers.containsString (org.hamcrest.Matchers.containsString)8 WarningsAction (org.jenkinsci.test.acceptance.plugins.warnings.WarningsAction)8 MavenModuleSet (org.jenkinsci.test.acceptance.plugins.maven.MavenModuleSet)7 IOException (java.io.IOException)6