1 package org.testng.xml; 2 3 import org.testng.TestNGException; 4 import org.testng.remote.strprotocol.GenericMessage; 5 import org.testng.remote.strprotocol.IRemoteSuiteListener; 6 import org.testng.remote.strprotocol.IRemoteTestListener; 7 import org.testng.remote.strprotocol.SuiteMessage; 8 import org.testng.remote.strprotocol.TestMessage; 9 import org.testng.remote.strprotocol.TestResultMessage; 10 import org.xml.sax.SAXException; 11 12 import java.io.File; 13 import java.io.FileInputStream; 14 import java.io.FileNotFoundException; 15 import java.io.IOException; 16 import java.io.InputStream; 17 18 /** 19 * Parses testng-result.xml. 20 * 21 * @see ResultContentHandler 22 * 23 * @author Cedric Beust <cedric (at) beust.com> 24 */ 25 public class ResultXMLParser extends XMLParser<Object> { 26 private IRemoteTestListener m_testListener; 27 private IRemoteSuiteListener m_suiteListener; 28 29 public ResultXMLParser(IRemoteSuiteListener suiteListener, IRemoteTestListener testListener) { 30 m_suiteListener = suiteListener; 31 m_testListener = testListener; 32 } 33 34 public void parse() { 35 } 36 37 @Override 38 public Object parse(String currentFile, InputStream inputStream, boolean loadClasses) { 39 ResultContentHandler handler = new ResultContentHandler(m_suiteListener, m_testListener, 40 loadClasses); 41 42 try { 43 parse(inputStream, handler); 44 45 return null; 46 } catch (SAXException | IOException e) { 47 throw new TestNGException(e); 48 } 49 } 50 51 public static void main(String[] args) throws FileNotFoundException { 52 IRemoteSuiteListener l1 = new IRemoteSuiteListener() { 53 54 @Override 55 public void onInitialization(GenericMessage genericMessage) { 56 } 57 58 @Override 59 public void onStart(SuiteMessage suiteMessage) { 60 } 61 62 @Override 63 public void onFinish(SuiteMessage suiteMessage) { 64 } 65 66 }; 67 68 IRemoteTestListener l2 = new IRemoteTestListener() { 69 70 @Override 71 public void onStart(TestMessage tm) { 72 } 73 74 @Override 75 public void onFinish(TestMessage tm) { 76 } 77 78 @Override 79 public void onTestStart(TestResultMessage trm) { 80 } 81 82 @Override 83 public void onTestSuccess(TestResultMessage trm) { 84 } 85 86 @Override 87 public void onTestFailure(TestResultMessage trm) { 88 } 89 90 @Override 91 public void onTestSkipped(TestResultMessage trm) { 92 } 93 94 @Override 95 public void onTestFailedButWithinSuccessPercentage(TestResultMessage trm) { 96 } 97 98 }; 99 ResultXMLParser parser = new ResultXMLParser(l1, l2); 100 String fileName = "/Users/cbeust/java/testng/test-output/testng-results.xml"; 101 parser.parse(fileName, new FileInputStream(new File(fileName)), false /* don't load classes */); 102 } 103 } 104