0

J'effectue mes tests TestNG par programme. J'injecte plusieurs suites et j'exécute. Mais quand j'exécute ce qui suit, testng-results.xml ne contient pas tous les résultats de chaque suite. Je n'ai que les résultats de la dernière suite. Est-ce que quelqu'un a déjà fait face au même problème?Les résultats XML sont remplacés lorsque plusieurs suites sont exécutées

  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(); 

Mise à jour: Si je lance ce de la manière suivante cela fonctionne. Mais je veux o générer dynamiquement la suite. Qu'est-ce que je fais mal?

  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> 

Répondre

1

J'ai fourni par exemple, qui travaille comme vous attendez, je l'espère, voir GitHub. Vous devez définir la suite parent pour vos suites en utilisant childSuite.setParentSuite(parentSuite) pour toutes vos suites imbriquées.

+0

Je veux les résultats dans un seul fichier. – ycr

+0

Vous voulez dire un fichier unique ou un rapport unique? – RocketRaccoon

+0

J'ai besoin de tous les résultats dans un seul fichier testng-result.xml. Comme je l'ai mentionné lorsque j'utilise la deuxième méthode, cela fonctionne comme prévu. – ycr