如何通过pom.xml将参数传递给testng.xml从jenkins运行单个测试用例

时间:2019-02-23 07:30:04

标签: maven selenium jenkins testng pom.xml

我想根据jenkins传递的变量来运行测试用例,例如如果我从jenkins中选择TestCaseForHistoryPage,它应该只运行。

我的testng,xml如下:

<test name="TestCaseForInlineRedemption">
      <classes>
        <class name="test_cases.TestCaseForInlineRedemption">
      </class>
    </classes>
  </test> <!-- Test -->
  <test name="TestCaseForHistoryPage">
      <classes>
        <class name="test_cases.TestCaseForHistoryPage">
      </class>
    </classes>
  </test>


And pom like:

<plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.0</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>

      </plugin>
     <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.19.1</version>
            <configuration>
             <systemPropertyVariables>
             <testnames>${Dtest}</testnames>
            <country>${Dcountry}</country>
            <environment>${Denvironment}</environment>
          </systemPropertyVariables>
                    <testFailureIgnore>true</testFailureIgnore>
                <suiteXmlFiles>
                <!-- TestNG suite XML files -->             
                    <suiteXmlFile>testng.xml</suiteXmlFile>
                </suiteXmlFiles>                
                 <systemProperties>
            <property>          

             **<test>${Dtest}</test>** 
          </property>
         </systemProperties> 
            </configuration>
    </plugin>

我想通过pom将$ {Dtest}从jenkins传递到testng。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

选项1:

您可以检查此插件以运行选定的测试用例。 Tests Selector Plugin

选项2:

为TestCaseForHistoryPage的测试用例创建另一个HistoryPage.xml文件。如下所述在“ maven-surefire-plugin”中使用动态xml文件名。

    <configuration>

            <suiteXmlFiles>

                <!-- TestNG suite XML files -->
             <suiteXmlFile>${suiteXmlFile}</suiteXmlFile>

            </suiteXmlFiles>


    </configuration>

现在您可以通过maven来运行它

mvn clean test -Dsurefire.suiteXmlFiles=fileName.xml

在Jenkins中,您可以使用“使用参数构建”选项来创建作业,并创建一个字符串参数。现在,您可以在Jenkins中传递此参数。