以编程方式使用虚拟xml运行特定的TestNG方法

时间:2015-09-16 14:40:49

标签: java xml testng

我有这个代码来生成一个虚拟的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中指定它。

2 个答案:

答案 0 :(得分:2)

您是否尝试过这两种方法 - setExcludedMethodssetIncludedMethods。看起来你可以用这些来达到你想要的效果。

答案 1 :(得分:0)

您可以使用testng method groups来实现这一目标。 基本上你必须生成以下内容:

<test name="TmpTest"> 
  <classes> 
    <class name="example1.MyTest"> 
      <methods> 
        <include name=".*enabledTestMethod.*"/> 
        <exclude name=".*brokenTestMethod.*"/> 
      </methods>
     </class> 
  </classes> 
</test>