XML 执行多个套件时结果被覆盖
XML results are overridden when multiple suites are executed
我正在 运行以编程方式测试我的 TestNG。我正在注入多个套件并执行。但是当我执行以下命令时,testng-results.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>
我已经提供了如您所期望的那样工作的示例,希望您能看到 GitHub。您需要使用 childSuite.setParentSuite(parentSuite)
为所有嵌套套件设置父套件。
我正在 运行以编程方式测试我的 TestNG。我正在注入多个套件并执行。但是当我执行以下命令时,testng-results.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>
我已经提供了如您所期望的那样工作的示例,希望您能看到 GitHub。您需要使用 childSuite.setParentSuite(parentSuite)
为所有嵌套套件设置父套件。