0

私はTestNGテストを計画的に実行しています。私は複数のスイートをインジェクトして実行しています。しかし、以下を実行すると、testng-results.xmlに各スイートのすべての結果が含まれているわけではありません。私は最後のスイートの結果しか得ていない。誰も前に同じ問題に直面したことはありますか?複数のスイートを実行すると、XMLの結果がオーバーライドされます

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

アップデート:私はそれが動作する、以下の方法でこれを実行する場合。しかし、私は動的にスイートを生成したい。私は間違って何をしていますか?

  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> 

答えて

1

、私は願って、GitHubを参照してください。すべてのネストされたスイートにchildSuite.setParentSuite(parentSuite)を使用して、スイートに親スイートを設定する必要があります。

+0

結果を1つのファイルにまとめたい。 – ycr

+0

あなたは単一のファイルまたは単一のレポートを意味しますか? – RocketRaccoon

+0

すべての結果が1つのtestng-result.xmlに必要です。私が2番目の方法を使用するときに私が言及したように、それは期待どおりに動作します。 – ycr

関連する問題