java - 如何将类名动态传递给 Testng XML 中的类标记

标签 java xml selenium testng

我需要将类名动态传递给 <Class>在 Testng XML 中

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="none">
  <test thread-count="5" name="Test">
      <parameter name="browser" value="chrome"></parameter>
    <classes>
      <class name="testCaseWithKeywordFramework.TestCase1_Login"/>
    </classes>
  </test> <!-- Test -->

</suite> <!-- Suite -->

在上面的 XML 代码中,我想动态传递类名,谁能帮助我。

最佳答案

您可以很容易地从您自己的程序中调用 TestNG:

TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
testng.setTestClasses(new Class[] { Run2.class });
testng.addListener(tla);
testng.run();

此示例创建一个 TestNG 对象并运行测试类 Run2。

更多可以引用here

同样,您可以在 testng.xml 文件上调用 TestNG,或者您可以自己创建一个虚拟 testng.xml 文件

例如,假设您要创建以下虚拟文件:

<suite name="TmpSuite" >
  <test name="TmpTest" >
    <classes>
      <class name="test.failures.Child"  />
    <classes>
    </test>
</suite>

您将使用以下代码:

XmlSuite suite = new XmlSuite();
suite.setName("TmpSuite");
XmlTest test = new XmlTest(suite);
test.setName("TmpTest");
List<XmlClass> classes = new ArrayList<XmlClass>();
classes.add(new XmlClass("test.failures.Child"));
test.setXmlClasses(classes) ;  

然后您可以将此 XmlSuite 传递给 TestNG:

List<XmlSuite> suites = new ArrayList<XmlSuite>();
suites.add(suite);
TestNG tng = new TestNG();
tng.setXmlSuites(suites);
tng.run();

关于java - 如何将类名动态传递给 Testng XML 中的类标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51367345/

相关文章:

java - 我需要在 hibernate 中的多态查询中查询两次吗?

java - 将字符串转换为字节以进行 "RSA"加密时出现问题(Java)

java - ComboViewer 和 Combo 有什么区别?

java - Azure - Java 应用程序

c# - WPF 网页浏览器 : changing IE print dialog properties programmatically

xml - 如何从 Excel VBA 宏生成 XML?

Java、xml、目录文件、XSD 模式验证和 NullPointerException (JAXP09020006 : The argument 'systemId' can not be null. )

google-chrome - Geb 中的新 headless Chrome

python - 如何通过 Python 使用 Selenium 单击此按钮

testing - Nightwatch.js 中的数据驱动测试