Java Examples for hudson.tasks.junit.JUnitResultArchiver
The following java examples will help you to understand the usage of hudson.tasks.junit.JUnitResultArchiver. These source code samples are taken from different open source projects.
Example 1
| Project: hudson_plugins-master File: GrailsProjectCrawlerTask.java View source code |
protected void setupJob(FreeStyleProject job, GrailsProjectInfo info) throws Exception {
job.setDescription(descriptionTemplate.generate(info));
job.setLogRotator(new LogRotator(-1, 3));
job.addTrigger(new SCMTrigger("*/5 * * * *"));
job.setAssignedLabel(null);
addGBuildWrapper(job);
DescribableList<Builder, Descriptor<Builder>> builders = job.getBuildersList();
builders.clear();
builders.add(new Shell(JOB_SHELL.generate(info)));
String targets = "clean " + (info.isTestsAvirable() ? "test-app" : "package") + " --non-interactive";
builders.add(new GrailsBuilder(targets, context.getGrailsMap().get(info.getGrailsVersion()), null, null, null, null));
DescribableList<Publisher, Descriptor<Publisher>> publishers = job.getPublishersList();
publishers.clear();
if (info.isTestsAvirable()) {
publishers.add(new JUnitResultArchiver(format("%s/test/reports/TEST*.xml", info.getName()), null));
}
if (isActive("emotional-hudson")) {
publishers.add(createEmotionalHudsonPublisher());
}
if (isActive("twitter")) {
publishers.add(createTwitterPublisher());
}
}Example 2
| Project: jenkins-plugins-master File: OnlyRegressionsTest.java View source code |
@Test
public void testOnlyRegressionsAreShown() throws Exception {
FreeStyleProject project = j.createFreeStyleProject("onlyRegressions");
project.getPublishersList().add(new JUnitResultArchiver("target/testreports/*.xml", true, null));
project.getBuildersList().add(new TestBuilder() {
@Override
public boolean perform(AbstractBuild<?, ?> abstractBuild, Launcher launcher, BuildListener buildListener) throws InterruptedException, IOException {
final URL failedTestReport = Thread.currentThread().getContextClassLoader().getResource("hudson/plugins/emailext/testreports/failed_test.xml");
FilePath workspace = abstractBuild.getWorkspace();
FilePath testDir = workspace.child("target").child("testreports");
testDir.mkdirs();
FilePath reportFile = testDir.child("failed_test.xml");
reportFile.copyFrom(failedTestReport);
return true;
}
});
TaskListener listener = StreamTaskListener.fromStdout();
project.scheduleBuild2(0).get();
FailedTestsContent failedTestsContent = new FailedTestsContent();
failedTestsContent.onlyRegressions = true;
String content = failedTestsContent.evaluate(project.getLastBuild(), listener, FailedTestsContent.MACRO_NAME);
assertTrue("The failing test should be reported the first time it fails", content.contains("hudson.plugins.emailext"));
project.scheduleBuild2(0).get();
content = failedTestsContent.evaluate(project.getLastBuild(), listener, FailedTestsContent.MACRO_NAME);
assertFalse("The failing test should not be reported the second time it fails", content.contains("hudson.plugins.emailext"));
assertTrue("The content should state that there are other failing tests still", content.contains("and 1 other failed test"));
}Example 3
| Project: DotCi-Plugins-Starter-Pack-master File: JunitPluginAdapter.java View source code |
@Override
public boolean perform(DynamicBuild dynamicBuild, Launcher launcher, BuildListener listener) {
String files = getPluginInputFiles();
listener.getLogger().println(String.format("Archiving JUnit results: '%s'", files));
DescribableList<TestDataPublisher, Descriptor<TestDataPublisher>> testDataPublishers = new DescribableList<TestDataPublisher, Descriptor<TestDataPublisher>>(Saveable.NOOP);
JUnitResultArchiver publisher = new JUnitResultArchiver(files, true, testDataPublishers);
try {
return publisher.perform(((AbstractBuild) dynamicBuild), launcher, listener);
} catch (Exception e) {
listener.getLogger().println(String.format("FAILED archiving JUnit results: %s", e.toString()));
return false;
}
}Example 4
| Project: hudson.test.ui-master File: CascadingProjectTest.java View source code |
/**
* Tests whether assigning of 'Publish JUnit test result report' option falls through cascading hierarchy.
*/
@Test
public void testCascadingInheritance() {
prepareCascading("parent", "child1");
selenium.click(CONFIG_SAVE_BUTTON_EXP);
selenium.open("/");
waitForTextPresent("New Job");
selenium.click("link=New Job");
selenium.type("name", "child2");
selenium.click("mode");
selenium.click("//button[@type='button']");
selenium.waitForPageToLoad("30000");
selenium.select("//select[@name='cascadingProjectName']", "child1");
selenium.waitForPageToLoad("30000");
selenium.click(CONFIG_SAVE_BUTTON_EXP);
selenium.open("/job/parent/configure");
selenium.waitForPageToLoad("30000");
selenium.click("//input[@name='hudson-tasks-junit-JUnitResultArchiver']");
selenium.type("//input[@name='_.testResults']", "**/target/surefire-reports/*.xml");
selenium.click(CONFIG_SAVE_BUTTON_EXP);
selenium.open("/job/child2/configure");
selenium.waitForPageToLoad("30000");
assertEquals("**/target/surefire-reports/*.xml", selenium.getValue("//input[@name='_.testResults']"));
}Example 5
| Project: cloudtest-plugin-master File: TestCompositionRunner.java View source code |
@Override
public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException {
// Create a unique sub-directory to store all test results.
String resultsDir = "." + getClass().getName();
// Split by newline.
EnvVars envs = build.getEnvironment(listener);
String[] compositions = envs.expand(this.composition).split("[\r\n]+");
String additionalOptionsExpanded = additionalOptions == null ? null : envs.expand(additionalOptions);
String[] options = additionalOptionsExpanded == null ? null : new QuotedStringTokenizer(additionalOptionsExpanded).toArray();
for (String composition : compositions) {
ArgumentListBuilder args = getSCommandArgs(build, listener);
args.add("cmd=play", "wait", "format=junitxml").add("name=" + composition);
// if thresholds are included in this post-build action, add them to scommand arguments
if (thresholds != null) {
displayTransactionThreholds(listener.getLogger());
for (TransactionThreshold threshold : thresholds) {
args.add("validation=" + threshold.toScommandString());
}
}
String fileName = composition + ".xml";
// will typically be the full CloudTest folder path).
if (fileName.startsWith("/")) {
fileName = fileName.substring(1);
}
// Put the file in the test results directory.
fileName = resultsDir + File.separator + fileName;
FilePath xml = new FilePath(build.getWorkspace(), fileName);
// Make sure the directory exists.
xml.getParent().mkdirs();
// Add the additional options to the composition if there are any.
if (options != null) {
args.add(options);
}
if (generatePlotCSV) {
args.add("outputthresholdcsvdir=" + build.getWorkspace());
}
// Run it!
int exitCode = launcher.launch().cmds(args).pwd(build.getWorkspace()).stdout(xml.write()).stderr(listener.getLogger()).join();
if (xml.length() == 0) {
// This should never happen, but just in case...
return false;
}
if (deleteOldResults) {
// Run SCommand again to clean up the old results.
args = getSCommandArgs(build, listener);
args.add("cmd=delete", "type=result").add("path=" + composition).add("maxage=" + maxDaysOfResults);
launcher.launch().cmds(args).pwd(build.getWorkspace()).stdout(listener).stderr(listener.getLogger()).join();
}
}
// Now that we've finished running all the compositions, pass
// the results directory off to the JUnit archiver.
String resultsPattern = resultsDir + "/**/*.xml";
JUnitResultArchiver archiver = new JUnitResultArchiver(resultsPattern, true, new DescribableList<TestDataPublisher, Descriptor<TestDataPublisher>>(Saveable.NOOP, Collections.singleton(new JunitResultPublisher(null))));
return archiver.perform(build, launcher, listener);
}Example 6
| Project: hudson.core-master File: LegacyProjectTest.java View source code |
/**
* Tests unmarshalls FreeStyleProject configuration and checks whether publishers
* from Project are configured
*
* @throws Exception if any.
*/
@Test
public void testConvertPublishersProperty() throws Exception {
Project project = (Project) Items.getConfigFile(config).read();
project.setAllowSave(false);
project.initProjectProperties();
Hudson hudson = createMock(Hudson.class);
String mailerKey = "hudson-tasks-Mailer";
Descriptor<Publisher> mailerDescriptor = createMock(Mailer.DescriptorImpl.class);
expect(mailerDescriptor.getJsonSafeClassName()).andReturn(mailerKey);
expect(hudson.getDescriptorOrDie(Mailer.class)).andReturn(mailerDescriptor);
String jUnitKey = "hudson-task-JUnitResultArchiver";
Descriptor<Publisher> junitDescriptor = createMock(JUnitResultArchiver.DescriptorImpl.class);
expect(junitDescriptor.getJsonSafeClassName()).andReturn(jUnitKey);
expect(hudson.getDescriptorOrDie(JUnitResultArchiver.class)).andReturn(junitDescriptor);
mockStatic(Hudson.class);
expect(Hudson.getInstance()).andReturn(hudson).anyTimes();
replayAll();
//Publishers should be null, because of legacy implementation. Version < 2.2.0
assertNull(project.getProperty(mailerKey));
assertNull(project.getProperty(jUnitKey));
project.convertPublishersProperties();
//Verify publishers
assertNotNull(project.getProperty(mailerKey).getValue());
assertNotNull(project.getProperty(jUnitKey).getValue());
verifyAll();
}Example 7
| Project: matrix-project-plugin-master File: MatrixBuild.java View source code |
private void listUpAggregators(Collection<?> values) {
for (Object v : values) {
if (v instanceof MatrixAggregatable) {
MatrixAggregatable ma = (MatrixAggregatable) v;
MatrixAggregator a = ma.createAggregator(MatrixBuild.this, launcher, listener);
if (a != null)
aggregators.add(a);
} else if (v instanceof JUnitResultArchiver) {
// originally assignable to MatrixAggregatable
aggregators.add(new TestResultAggregator(MatrixBuild.this, launcher, listener));
}
}
}Example 8
| Project: Quarantine-master File: QuarantineCoreTest.java View source code |
public void testNoTestsHaveQuarantineActionForStandardPublisher() throws Exception {
project.getPublishersList().remove(QuarantinableJUnitResultArchiver.class);
DescribableList<TestDataPublisher, Descriptor<TestDataPublisher>> publishers = new DescribableList<TestDataPublisher, Descriptor<TestDataPublisher>>(project);
publishers.add(new QuarantineTestDataPublisher());
project.getPublishersList().add(new JUnitResultArchiver("*.xml", false, publishers));
TestResult tr = getResultsFromJUnitResult("junit-1-failure.xml");
for (SuiteResult suite : tr.getSuites()) {
for (CaseResult result : suite.getCases()) {
assertNull(result.getTestAction(QuarantineTestAction.class));
}
}
}Example 9
| Project: build-failure-analyzer-plugin-master File: BuildFailureScannerHudsonTest.java View source code |
/**
* Test whether failed test cases are successfully matched as failure causes.
*
* @throws Exception if not so.
*/
@Test
public void testTestResultInterpretation() throws Exception {
PluginImpl.getInstance().setTestResultParsingEnabled(true);
FreeStyleProject project = jenkins.createFreeStyleProject();
project.getBuildersList().add(new PrintToLogBuilder(BUILD_LOG));
project.getBuildersList().add(new TestBuilder() {
public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException {
build.getWorkspace().child("junit.xml").copyFrom(this.getClass().getResource("junit.xml"));
return true;
}
});
project.getPublishersList().add(new JUnitResultArchiver("junit.xml", false, null));
Future<FreeStyleBuild> future = project.scheduleBuild2(0, new Cause.UserIdCause());
FreeStyleBuild build = future.get(10, TimeUnit.SECONDS);
jenkins.assertBuildStatus(Result.UNSTABLE, build);
FailureCauseBuildAction action = build.getAction(FailureCauseBuildAction.class);
assertNotNull(action);
List<FoundFailureCause> causeListFromAction = action.getFoundFailureCauses();
assertEquals("Amount of failure causes does not match.", 2, causeListFromAction.size());
assertEquals(causeListFromAction.get(0).getName(), "AFailingTest");
assertEquals(causeListFromAction.get(0).getDescription(), "Here are details of the failure...");
assertEquals(new ArrayList<String>(), causeListFromAction.get(0).getCategories());
assertEquals(causeListFromAction.get(1).getName(), "AnotherFailingTest");
assertEquals(causeListFromAction.get(1).getDescription(), "More details");
assertEquals(new ArrayList<String>(), causeListFromAction.get(1).getCategories());
}Example 10
| Project: email-ext-plugin-master File: OnlyRegressionsTest.java View source code |
@Test
public void testOnlyRegressionsAreShown() throws Exception {
FreeStyleProject project = j.createFreeStyleProject("onlyRegressions");
project.getPublishersList().add(new JUnitResultArchiver("target/testreports/*.xml", true, null));
project.getBuildersList().add(new TestBuilder() {
@Override
public boolean perform(AbstractBuild<?, ?> abstractBuild, Launcher launcher, BuildListener buildListener) throws InterruptedException, IOException {
final URL failedTestReport = Thread.currentThread().getContextClassLoader().getResource("hudson/plugins/emailext/testreports/failed_test.xml");
FilePath workspace = abstractBuild.getWorkspace();
FilePath testDir = workspace.child("target").child("testreports");
testDir.mkdirs();
FilePath reportFile = testDir.child("failed_test.xml");
reportFile.copyFrom(failedTestReport);
return true;
}
});
TaskListener listener = StreamTaskListener.fromStdout();
project.scheduleBuild2(0).get();
FailedTestsContent failedTestsContent = new FailedTestsContent();
failedTestsContent.onlyRegressions = true;
String content = failedTestsContent.evaluate(project.getLastBuild(), listener, FailedTestsContent.MACRO_NAME);
assertTrue("The failing test should be reported the first time it fails", content.contains("hudson.plugins.emailext"));
project.scheduleBuild2(0).get();
content = failedTestsContent.evaluate(project.getLastBuild(), listener, FailedTestsContent.MACRO_NAME);
assertFalse("The failing test should not be reported the second time it fails", content.contains("hudson.plugins.emailext"));
assertTrue("The content should state that there are other failing tests still", content.contains("and 1 other failed test"));
}Example 11
| Project: hudson-2.x-master File: LegacyProjectTest.java View source code |
/**
* Tests unmarshalls FreeStyleProject configuration and checks whether publishers
* from Project are configured
*
* @throws Exception if any.
*/
@Test
public void testConvertPublishersProperty() throws Exception {
Project project = (Project) Items.getConfigFile(config).read();
project.setAllowSave(false);
project.initProjectProperties();
Hudson hudson = createMock(Hudson.class);
String mailerKey = "hudson-tasks-Mailer";
Descriptor<Publisher> mailerDescriptor = createMock(Mailer.DescriptorImpl.class);
expect(mailerDescriptor.getJsonSafeClassName()).andReturn(mailerKey);
expect(hudson.getDescriptorOrDie(Mailer.class)).andReturn(mailerDescriptor);
String jUnitKey = "hudson-task-JUnitResultArchiver";
Descriptor<Publisher> junitDescriptor = createMock(JUnitResultArchiver.DescriptorImpl.class);
expect(junitDescriptor.getJsonSafeClassName()).andReturn(jUnitKey);
expect(hudson.getDescriptorOrDie(JUnitResultArchiver.class)).andReturn(junitDescriptor);
mockStatic(Hudson.class);
expect(Hudson.getInstance()).andReturn(hudson).anyTimes();
replayAll();
//Publishers should be null, because of legacy implementation. Version < 2.2.0
assertNull(project.getProperty(mailerKey));
assertNull(project.getProperty(jUnitKey));
project.convertPublishersProperties();
//Verify publishers
assertNotNull(project.getProperty(mailerKey).getValue());
assertNotNull(project.getProperty(jUnitKey).getValue());
verifyAll();
}Example 12
| Project: xunit-plugin-master File: XUnitPublisher.java View source code |
@SuppressWarnings("deprecation")
@Override
public Action getProjectAction(AbstractProject<?, ?> project) {
JUnitResultArchiver jUnitResultArchiver = project.getPublishersList().get(JUnitResultArchiver.class);
if (jUnitResultArchiver == null) {
return new TestResultProjectAction(project);
}
return null;
}Example 13
| Project: phabricator-jenkins-plugin-master File: TestUtils.java View source code |
public static Publisher getDefaultXUnitPublisher() {
return new JUnitResultArchiver(JUNIT_XML);
}