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

결과를 하나의 파일로 원합니다. – ycr

+0

단일 파일 또는 단일 보고서를 의미합니까? – RocketRaccoon

+0

모든 결과가 하나의 testng-result.xml에 필요합니다. 두 번째 방법을 사용할 때 언급 한대로 예상대로 작동합니다. – ycr