将sysproperty作为testNG Ant Target的CLI参数,并使用此值作为Key获取另一个属性值

时间:2017-08-18 05:44:31

标签: ant testng build.xml

我正在努力实现这一目标。

我有一个属性文件,其中包含TestSuite业务名称到实际包的映射

test.properties checkout=com.mycompany.tests.checkout

在Ant build.xml中我定义了这个目标,它将调用TestNG Suite,我需要将参数传递给TestNG文件

build.xml中的目标

<target name="executeTests">
        <testng delegateCommandSystemProperties="true" haltonfailure="true" outputdir="${integ.test.dir}">
            <sysproperty key="testSuite" value="${testSuite}" />
            <classpath refid="test.classpath" />
            <xmlfileset dir="./" includes="testng/Tests.xml" />
        </testng>
</target>`

TestNG文件内容片段如下

    <parameter name="packageBase" value="${testSuite}" />

在运行目标上 - &gt; ant executeTests -DtestSuite=checkout

到目前为止,我成功将Ant构建语句中的CLI参数传递给testNG参数,

我需要帮助的地方是,我如何使用sysProperty读取套件的商业名称,并将相应的包传递给TestNG XML。 我尝试了以下不成功的

我尝试双重解析testSuite变量,但它不起作用,并作为原始变量传递给TestNG xml。

`<property file="testng/test.properties"/>
<target name="executeTests" depends="HappierTrails.test-integration-assert">
        <testng delegateCommandSystemProperties="true" haltonfailure="true" outputdir="${integ.test.dir}">
            <sysproperty key="testSuite" value="${testSuite}" />
            <sysproperty key="package" value="${${testSuite}}" />
            <classpath refid="test.classpath" />
            <xmlfileset dir="./" includes="testng/Tests.xml" />
        </testng>
</target>`

TestNG XML:         <parameter name="packageBase" value="${package}" />

由于变量未解决,我收到此错误

No tests found. Check that the package base <${${testSuite}}> is correct.

0 个答案:

没有答案