是否可以在Jenkins中将testng.xml和测试名称作为单个参数传递?

时间:2018-07-19 07:45:27

标签: java jenkins selenium-webdriver automation continuous-integration

我下面有testng.xml文件:

<test name="Product_Listing_Page" enabled="true">
    <parameter name="scenario.file.loc" value="scenarios/plp.bdd"></parameter>
    <groups>
        <run>
            <include name="REGRESSION" />
        </run>
    </groups>

    <classes>
        <class name="client.text.BDDTestFactory"></class>
    </classes>
</test>

<test name="Registration" enabled="false">
    <parameter name="scenario.file.loc" value="scenarios/registration.bdd"></parameter>
    <groups>
        <run>
            <include name="REGRESSION" />
        </run>
    </groups>
    <classes>
        <class name="client.text.BDDTestFactory"></class>
    </classes>
</test>

我已经创建了一个Jenkins作业作为Maven项目,在这里我将testng.xml文件名作为参数传递给clean test -DSuiteXmlFile=config/testrun_config.xml,因为我也已经在后期生成触发器中配置了failed-test.xml。我正在寻找一种可以通过命令传递测试名称的方法。

关于此的任何想法还是我需要尝试其他方法?

1 个答案:

答案 0 :(得分:0)

使用以下命令将多个参数从Jenking传递到Maven:

clean install compile test -DsuiteXmlFile=$TestNgFile -DOtherParamerer1=$ValueOfParameter1 -DOtherParameter2=$ValueOfParameter2 

如下图所示: enter image description here

使用以下方法在pom.xml中接收这些值:

            <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <skip>false </skip>
                <forkCount>0</forkCount>
                    <suiteXmlFile>${suiteXmlFile}</suiteXmlFile>
                </suiteXmlFiles>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                        <systemProperties>
                    <property>
                        <name>ValueOfParameter1</name>
                        <value>${OtherParamerer1}</value>
                    </property>
                    <property>
                        <name>ValueOfParameter2</name>
                        <value>${OtherParameter2}</value>
                    </property>
                </systemProperties>
            </configuration>
        </plugin>

这些值可以在任何javaFile或其他语言程序中读取:

static String  ValueOfParameter1=System.getProperty("ValueOfParameter1");
static String ValueOfParameter2= System.getProperty("ValueOfParameter2");

让我知道它是否可以解决您的问题。