2017-12-04 4 views
0

Können wir virtuell erstellte XML-Dateien physisch konvertieren? Zum Beispiel erzeuge ich testng.xml programmgesteuert und führe meine Testskripte dazu aus.Wird XmlSuite.SetFileName (XXX) eine physische Datei erstellen?

Meine Erwartung ist, ich muss eine XML-Datei erstellen, die virtuell erstellt wird, wie ich oben sagte ... Ich habe den folgenden Code verwendet, aber es produziert keine erwarteten Ergebnisse.

TestNG myTestNG = new TestNG(); 

    XmlSuite mySuite = new XmlSuite(); 
    mySuite.setName("MySuite"); 
    mySuite.setParallel(XmlSuite.ParallelMode.METHODS); 

    XmlTest myTest = new XmlTest(mySuite); 
    myTest.setName("MyTest"); 

    myTest.setParameters(testngParams); 

    List<XmlClass> myClasses = new ArrayList<XmlClass>(); 
    myClasses.add(new XmlClass("ThreadSample")); 

    myTest.setXmlClasses(myClasses); 

    List<XmlTest> myTests = new ArrayList<XmlTest>(); 
    myTests.add(myTest); 

    //add the list of tests to your Suite. 
    mySuite.setTests(myTests); 

    //Add the suite to the list of suites. 
    List<XmlSuite> mySuites = new ArrayList<XmlSuite>(); 
    mySuites.add(mySuite); 

    XmlSuite suite = getXmlSuite(); 
    mySuites.add(suite); 

    myTestNG.setXmlSuites(mySuites); 

    **suite.setFileName("user.dir" + System.getProperty("file.separator") + "myVirtual.xml"); 
    System.out.println("File generated successfully.");** 

    myTestNG.setSuiteThreadPoolSize(3); 
    myTestNG.setThreadCount(3); 

    myTestNG.run(); 

Kann mir jemand helfen, das zu vervollständigen?

Antwort

1

Um eine physische testNG.xml-Datei zu erstellen, müssen Sie das suites-Objekt an einer bestimmten Position schreiben.

FileWriter writer; 
try { 
writer = new FileWriter(new File("myVirtual.xml")); 
writer.write(mySuites.toXml()); 
writer.flush(); 
writer.close(); 
System.out.println(new File("myVirtual.xml").getAbsolutePath()); 
} catch (IOException e) { 

e.printStackTrace(); 
} 
+0

Vielen Dank für das Beispiel ... –

Verwandte Themen