1 package hudson.tasks.junit; 2 3 import org.dom4j.Document; 4 import org.dom4j.DocumentException; 5 import org.dom4j.Element; 6 import org.dom4j.io.SAXReader; 7 8 import java.io.File ; 9 import java.io.Serializable ; 10 import java.util.ArrayList ; 11 import java.util.List ; 12 13 26 public final class SuiteResult implements Serializable { 27 private final String name; 28 private final String stdout; 29 private final String stderr; 30 31 34 private final List <CaseResult> cases = new ArrayList <CaseResult>(); 35 private transient TestResult parent; 36 37 SuiteResult(File xmlReport) throws DocumentException { 38 Document result = new SAXReader().read(xmlReport); 39 Element root = result.getRootElement(); 40 name = root.attributeValue("name"); 41 42 stdout = root.elementText("system-out"); 43 stderr = root.elementText("system-err"); 44 45 for (Element e : (List <Element>)root.elements("testcase")) { 46 cases.add(new CaseResult(this,e)); 47 } 48 } 49 50 public String getName() { 51 return name; 52 } 53 54 public String getStdout() { 55 return stdout; 56 } 57 58 public String getStderr() { 59 return stderr; 60 } 61 62 public TestResult getParent() { 63 return parent; 64 } 65 66 public List <CaseResult> getCases() { 67 return cases; 68 } 69 70 public SuiteResult getPreviousResult() { 71 TestResult pr = parent.getPreviousResult(); 72 if(pr==null) return null; 73 return pr.getSuite(name); 74 } 75 76 83 public CaseResult getCase(String name) { 84 for (CaseResult c : cases) { 85 if(c.getName().equals(name)) 86 return c; 87 } 88 return null; 89 } 90 91 boolean freeze(TestResult owner) { 92 if(this.parent!=null) 93 return false; 95 this.parent = owner; 96 for (CaseResult c : cases) 97 c.freeze(this); 98 return true; 99 } 100 } 101 | Popular Tags |