Home | History | Annotate | Download | only in xml
      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