我正在尝试以编程方式创建 testng.xml。我使用下面的Java代码
public static createTestSuit(String testClass){
XmlSuite suite = new XmlSuite();
suite.setName("My Suite");
XmlTest test = new XmlTest(suite);
test.setName("My Test");
List<XmlClass> classes = new ArrayList<XmlClass>();
classes.add(new XmlClass(testClass));
test.setXmlClasses(classes) ;
List<XmlSuite> suites = new ArrayList<XmlSuite>();
suites.add(suite);
TestNG tng = new TestNG();
tng.setXmlSuites(suites);
tng.run();
}
“testClass”类包含多个测试方法。我不想运行所有这些方法。如何在上面的代码中只指定我想要运行的测试方法名称,以便上面的方法看起来像
public static createTestSuit(String testClass, List<String> testCasesID){
//code
}
注意:我的测试方法采用以下形式
@Test(testName="testCaseID")
public void test1(){
}
最佳答案
使用 XmlInclude
仅包含您想要的测试方法。
XmlClass xmlClass = new XmlClass("");
List<XmlInclude> includeMethods = new ArrayList<>();
includeMethods.add(new XmlInclude("test1"));
xmlClass.setIncludedMethods(includeMethods);
如果包含方法列表未定义或定义为空,则 TestNG 将运行类中的所有测试。否则,它将仅运行按方法名称包含的测试。
关于java - TestNG - 以编程方式运行特定测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36709814/