package hudson.plugins.view.dashboard.test;
import hudson.model.Job;
import hudson.model.Run;
import hudson.tasks.junit.TestResultAction;
import hudson.tasks.test.AbstractTestResultAction;
import hudson.tasks.test.TestResultProjectAction;
import java.util.Collection;
public class TestUtil {
/**
* Summarize the last test results from the passed set of jobs. If a job
* doesn't include any tests, add a 0 summary.
*
* @param jobs
* @return
*/
public static TestResultSummary getTestResultSummary(Collection<Job> jobs) {
TestResultSummary summary = new TestResultSummary();
for (Job job : jobs) {
boolean addBlank = true;
TestResultProjectAction testResults = job.getAction(TestResultProjectAction.class);
if (testResults != null) {
AbstractTestResultAction tra = testResults.getLastTestResultAction();
if (tra != null) {
addBlank = false;
summary.addTestResult(new TestResult(job, tra.getTotalCount(), tra.getFailCount(), tra.getSkipCount()));
}
}
if (addBlank) {
summary.addTestResult(new TestResult(job, 0, 0, 0));
}
}
return summary;
}
public static TestResult getTestResult(Run run) {
TestResultAction tra = run.getAction(TestResultAction.class);
if (tra != null) {
return new TestResult(run.getParent(), tra.getTotalCount(), tra.getFailCount(), tra.getSkipCount());
} else {
return new TestResult(run.getParent(), 0, 0, 0);
}
}
}