/** * Performs a configuration round-trip testing for a publisher. */ protected <P extends Publisher> P configRoundtrip(P before) throws Exception { FreeStyleProject p = createFreeStyleProject(); p.getPublishersList().add(before); configRoundtrip(p); return (P)p.getPublishersList().get(before.getClass()); }
/** * Performs a configuration round-trip testing for a publisher. */ protected <P extends Publisher> P configRoundtrip(P before) throws Exception { FreeStyleProject p = createFreeStyleProject(); p.getPublishersList().add(before); configRoundtrip(p); return (P)p.getPublishersList().get(before.getClass()); }
/** * Performs a configuration round-trip testing for a publisher. */ protected <P extends Publisher> P configRoundtrip(P before) throws Exception { FreeStyleProject p = createFreeStyleProject(); p.getPublishersList().add(before); configRoundtrip(p); return (P) p.getPublishersList().get(before.getClass()); }
/** * Performs a configuration round-trip testing for a publisher. */ public <P extends Publisher> P configRoundtrip(P before) throws Exception { FreeStyleProject p = createFreeStyleProject(); p.getPublishersList().add(before); configRoundtrip((Item) p); return (P)p.getPublishersList().get(before.getClass()); }
/** * Performs a configuration round-trip testing for a publisher. */ @SuppressWarnings("unchecked") protected <P extends Publisher> P configRoundtrip(P before) throws Exception { FreeStyleProject p = createFreeStyleProject(); p.getPublishersList().add(before); configRoundtrip((Item) p); return (P)p.getPublishersList().get(before.getClass()); }
@Override protected void addBuildStep() { p.getPublishersList().add(notifier); }
private void addFingerprinterToProject(FreeStyleProject project, String[] contents, String[] files) throws Exception { StringBuilder targets = new StringBuilder(); for (int i = 0; i < contents.length; i++) { String command = "echo $BUILD_NUMBER " + contents[i] + " > " + files[i]; project.getBuildersList().add(Functions.isWindows() ? new BatchFile(command) : new Shell(command)); targets.append(files[i]).append(','); } project.getPublishersList().add(new Fingerprinter(targets.toString())); } }
private void createDownstreamProjectWithNoTests() throws Exception { downstreamProject = j.createFreeStyleProject(TEST_PROJECT_NAME); downstreamProject.setQuietPeriod(0); addFingerprinterToProject(downstreamProject, singleContents, singleFiles); upstreamProject.getPublishersList().add(new BuildTrigger(ImmutableList.of(downstreamProject), Result.SUCCESS)); upstreamProject.getPublishersList().add(new AggregatedTestResultPublisher(null)); j.jenkins.rebuildDependencyGraph(); }
private void addJUnitResultArchiver(FreeStyleProject project) { JUnitResultArchiver archiver = new JUnitResultArchiver("*.xml"); project.getPublishersList().add(archiver); project.getBuildersList().add(new TouchBuilder()); }
@Before public void setUp() throws Exception { project = j.createFreeStyleProject("junit"); archiver = new JUnitResultArchiver("*.xml"); project.getPublishersList().add(archiver); project.getBuildersList().add(new TouchBuilder()); }
@Before public void setUp() throws Exception { project = rule.createFreeStyleProject(BASIC_TEST_PROJECT); archiver = new JUnitResultArchiver("*.xml"); project.getPublishersList().add(archiver); project.getBuildersList().add(new TouchBuilder()); }
/** * This is more of a test of the core, but make sure the triggers resolve between ourselves. */ @Test public void trigger() throws Exception { Folder f = createFolder(); FreeStyleProject a = f.createProject(FreeStyleProject.class, "a"); FreeStyleProject b = f.createProject(FreeStyleProject.class, "b"); a.getPublishersList().add(new BuildTrigger("b",false)); FreeStyleBuild a1 = r.assertBuildStatusSuccess(a.scheduleBuild2(0)); for (int i=0; i<10 && b.getLastBuild()==null; i++) { Thread.sleep(100); } // make sue that a build of B happens }
@Before public void setUp() throws Exception { project = rule.createFreeStyleProject("taqueria"); archiver = new JUnitResultArchiver("*.xml"); project.getPublishersList().add(archiver); project.getBuildersList().add(new TouchBuilder()); }
@Test public void emptyDirectory() throws Exception { JUnitResultArchiver a = new JUnitResultArchiver("TEST-*.xml"); a.setAllowEmptyResults(false); FreeStyleProject freeStyleProject = j.createFreeStyleProject(); freeStyleProject.getPublishersList().add(a); j.assertBuildStatus(Result.FAILURE, freeStyleProject.scheduleBuild2(0).get()); }
@Test public void emptyDirectoryAllowEmptyResult() throws Exception { JUnitResultArchiver a = new JUnitResultArchiver("TEST-*.xml"); a.setAllowEmptyResults(true); FreeStyleProject freeStyleProject = j.createFreeStyleProject(); freeStyleProject.getPublishersList().add(a); j.assertBuildStatus(Result.SUCCESS, freeStyleProject.scheduleBuild2(0).get()); }
@Test public void testPostUnitWithFailure() throws Exception { TestUtils.addCopyBuildStep(p, TestUtils.JUNIT_XML, JUnitTestProvider.class, "go-torch-junit-fail.xml"); p.getPublishersList().add(TestUtils.getDefaultXUnitPublisher()); FreeStyleBuild build = buildWithConduit(getFetchDiffResponse(), null, new JSONObject()); assertEquals(Result.UNSTABLE, build.getResult()); assertLogContains("Publishing unit results to Harbormaster for 8 tests", build); FakeConduit conduitTestClient = getConduitClient(); // There are two requests, first it fetches the diff info, secondly it posts the unit result to harbormaster assertEquals(2, conduitTestClient.getRequestBodies().size()); String actualUnitResultWithFailureRequestBody = conduitTestClient.getRequestBodies().get(1); assertConduitRequest(getUnitResultWithFailureRequest(), actualUnitResultWithFailureRequestBody); }
private FreeStyleBuild configureTestBuild(String projectName) throws Exception { FreeStyleProject p = projectName == null ? rule.createFreeStyleProject() : rule.createFreeStyleProject(projectName); p.getBuildersList().add(new TestBuilder() { public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { build.getWorkspace().child("junit.xml").copyFrom( getClass().getResource("junit-report-20090516.xml")); return true; } }); p.getPublishersList().add(new JUnitResultArchiver("*.xml")); return rule.assertBuildStatus(Result.UNSTABLE, p.scheduleBuild2(0).get()); }
@Test public void testPostUnit() throws Exception { TestUtils.addCopyBuildStep(p, TestUtils.JUNIT_XML, JUnitTestProvider.class, "go-torch-junit.xml"); p.getPublishersList().add(TestUtils.getDefaultXUnitPublisher()); FreeStyleBuild build = buildWithConduit(getFetchDiffResponse(), null, new JSONObject()); assertEquals(Result.SUCCESS, build.getResult()); assertLogContains("Publishing unit results to Harbormaster for 35 tests", build); }
/** * Creates a freestyle project & build with UNSTABLE status * containing a test report from: /hudson/tasks/junit/junit-report-20090516.xml */ private FreeStyleBuild configureTestBuild(String projectName) throws Exception { FreeStyleProject p = j.createFreeStyleProject(projectName); p.getBuildersList().add(new TestBuilder() { @Override @SuppressWarnings("null") public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { build.getWorkspace().child("junit.xml").copyFrom( getClass().getResource("/hudson/tasks/junit/junit-report-20090516.xml")); return true; } }); p.getPublishersList().add(new JUnitResultArchiver("*.xml")); return j.assertBuildStatus(Result.UNSTABLE, p.scheduleBuild2(0).get()); } }
@Issue("JENKINS-19186") @Test public void testBrokenResultFile() throws Exception { FreeStyleProject p = rule.createFreeStyleProject(); p.getBuildersList().add(new TestBuilder()); p.getPublishersList().add(new JUnitResultArchiver("TEST-foo.xml", false, null)); rule.assertBuildStatus(Result.UNSTABLE, p.scheduleBuild2(0).get()); } private static final class TestBuilder extends Builder {