我有这个代码来生成一个虚拟的TestNG XML文件,它成功地以编程方式运行指定的类:
XmlSuite suite = new XmlSuite();
suite.setName("TmpSuite");
XmlTest test = new XmlTest(suite);
test.setName("TmpTest");
List<XmlClass> classes = new ArrayList<XmlClass>();
Map<String, String> parameters = new HashMap<String, String>();
parameters.put("browser", "Firefox");
suite.setParameters(parameters);
classes.add(new XmlClass(classToBeRun));
test.setXmlClasses(classes);
List<XmlSuite> suites = new ArrayList<XmlSuite>();
suites.add(suite);
TestNG tng = new TestNG();
tng.setXmlSuites(suites);
tng.run();
但是,我希望能够从该类中执行特定的方法(而不是类中的每个方法)。我怎样才能做到这一点?我已经有了提取测试方法并选择特定方法的逻辑,我只需要能够在虚拟XML中指定它。
答案 0 :(得分:2)
您是否尝试过这两种方法 - setExcludedMethods和setIncludedMethods。看起来你可以用这些来达到你想要的效果。
答案 1 :(得分:0)
您可以使用testng method groups来实现这一目标。 基本上你必须生成以下内容:
<test name="TmpTest">
<classes>
<class name="example1.MyTest">
<methods>
<include name=".*enabledTestMethod.*"/>
<exclude name=".*brokenTestMethod.*"/>
</methods>
</class>
</classes>
</test>