0

Ich führe meine TestNG-Tests programmatisch durch. Ich injiziere mehrere Suiten und führe sie aus. Aber wenn ich Folgendes ausführe, enthält testng-results.xml nicht alle Ergebnisse aus jeder Suite. Ich bekomme nur Ergebnisse der letzten Suite. Hat jemand schon einmal mit dem gleichen Problem konfrontiert?XML-Ergebnisse werden überschrieben, wenn mehrere Suites ausgeführt werden

  TestNG tng = new TestNG(); 
      List<XmlSuite> suites = new ArrayList<>(); 

      for (Deployment deployment : deploymentList) { 

      tcList = tlsite.getTestCaseClassList(); 

       XmlSuite suite = new XmlSuite(); 
       suite.setName(deployment.getName()); 
       XmlTest test = new XmlTest(suite); 
       test.setName("AutomationTests"); 
       List<XmlClass> classes = new ArrayList<>(); 

       for (Object className : tcList){ 
        try { 
         classes.add(new XmlClass((String) className)); 
        } catch (TestNGException e){ 
         log.error("Error occurred while adding the class : " +e.toString()); 
        } 
       } 
       test.setXmlClasses(classes) ; 
       suites.add(suite); 
      } 
      tng.setXmlSuites(suites); 
      tng.setOutputDirectory("my-out"); 
      tng.run(); 

Update: Wenn ich das auf die folgende Weise ausführen, funktioniert es. Aber ich möchte die Suite dynamisch generieren. Was mache ich falsch?

  TestNG testng = new TestNG(); 
      List<String> suites = new ArrayList<>(); 
      suites.add("../src/test/resources/testng.xml"); 
      testng.setTestSuites(suites); 
      testng.run(); 

testng.xml

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > 
<suite name="suite of suites"> 
    <suite-files> 
     <suite-file path="testng_pattern1.xml" /> 
     <suite-file path="testng_pattern2.xml" /> 
    </suite-files> 
</suite> 

Antwort

1

I Beispiel zur Verfügung gestellt haben, die, wie Sie arbeitet erwarten, ich hoffe, siehe GitHub. Sie müssen die Eltern-Suite für Ihre Suiten unter Verwendung von childSuite.setParentSuite(parentSuite) für alle Ihre geschachtelten Suiten festlegen.

+0

Ich möchte die Ergebnisse in einer einzigen Datei. – ycr

+0

Sie meinen eine einzelne Datei oder einen einzelnen Bericht? – RocketRaccoon

+0

Ich brauche alle Ergebnisse in einer einzigen testng-result.xml. Wie schon erwähnt, wenn ich die zweite Methode verwende, funktioniert es wie erwartet. – ycr

Verwandte Themen