如何将特定的测试方法名称从maven命令传递给testng.xml文件

时间:2014-11-02 15:30:58

标签: maven testng maven-surefire-plugin

我希望使用maven命令传递特定的测试方法传递给testng.xml文件以及如何在testng.xml中读取该参数

pom.xml中使用的maven-surefire-plugin

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.17</version>
        <configuration>
          <suiteXmlFiles>
            <suiteXmlFile>testng.xml</suiteXmlFile>
          </suiteXmlFiles>
        </configuration>
</plugin>

下面是我的testng.xml文件

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="Suite1" verbose="1" >
  <test name="Nopackage" >
    <classes>
       <class name="com.ariveguru.tests.EServeSanityTest" />

    </classes>
  </test>
</suite>

2 个答案:

答案 0 :(得分:0)

您想对测试方法的名称做什么?

如果要包含/排除某些测试,Surefire插件允许Inclusions and Exclusions of Tests,但不适用于单个方法。要实现这一点,您可以将相关方法移动到自己的测试类中(如果可行的话)。

答案 1 :(得分:0)

您可以将其作为jenkins的参数传递,并在testng.xml中更新以下内容

<test name="Automation Test Results" >
   <method-selectors>
       <method-selector><script language="beanshell"><![CDATA[
         testngMethod.getMethodName().contains(System.getProperty("testToRun"))
       ]]></script></method-selector>
   </method-selectors>
  <packages>
       <package name="com.mycompany.*"></package>
   </packages> 
  </test>

从jenkins添加一个参数-DtestToRun = testToTest