以下是该方案:
使用一个参数调用 ant 的 shell脚本。然后ant执行 testng.xml (套件文件)传递相同的参数,而testng依次在传递相同的参数时执行 test 。
就我而言,我正在传递浏览器字符串,例如。(firefox,iexplore)参数,该参数将指定将运行哪个浏览器测试。我希望能够让我的测试结果输出告诉我测试运行的浏览器。
我从蚂蚁命令行中获取参数:
...
<sysproperty key="browser" value="${browser}"/>
我在想,既然ant调用了testng.xml,我可以在testng.xml中做同样的事情
我去了testng.xml并做了类似的事情:
<suite name="AcceptanceSuite_${browser}">
<test name="Acceptance Test_${browser}" >
我希望我没有失去任何人。解释事物并不是最好的,只需要在testng.xml中捕获这个参数,并将其包含在套件名称
中答案 0 :(得分:4)
在build.xml文件中,在testng标记中设置delegateCommandSystemProperties = true并添加
testng标记下的<sysproperty key="property" value="${property}"/>
如下:
<target name="execute" depends="compile">
<testng delegateCommandSystemProperties="true">
<sysproperty key="property" value="${property}"/>
<xmlfileset dir="${basedir}" includes="testng.xml" />
</testng>
</target>
在testng文件中,在参数标记中添加“key”和“value”,如下所示:
<parameter name="property" value="${property}"></parameter>
从命令行运行ant并传递参数值,如下所示:
ant -Dproperty=true execute
这应该有用。
答案 1 :(得分:1)
如果您将delegateCommandSystemProperties
设置为<sysproperty>
,我认为它应与true
一起使用
并将<sysproperty>
嵌套在<testng>
不确定您是否嵌套了<sysproperty>
?