1

我正在为基于TestNG 的自己的测试框架编写一个suite.xml。我的 xml 文件如下所示:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite" parallel="methods">
  <test name="NewTest">
  <parameter name="BROWSER" value="Chrome"></parameter>
  <classes>
   <class name="hm.NewTest">
     <methods>
        <include name="test"></include>
        <include name="test2"></include>
        <include name="test3"></include>
        <include name="test4"></include>
     </methods>
   </class>
 </classes>
 </test>
 </suite>

现在为完整测试指定参数“BROWSER”。但是我需要为每个包含的方法提供一个自己的参数。有谁知道解决方案?

4

2 回答 2

1

为此,您可以单独为测试分配参数,而不是在测试套件 xml 中分配参数。为此,您不必在 suite.xml 中添加每个参数。

@Parameters({ "datasource", "jdbcDriver" })
@test
public void sampleTest(String ds, String driver) {
// your test method
}

希望对你有帮助1

http://testng.org/doc/documentation-main.html#parameters

于 2012-01-26T06:57:11.553 回答
1

出于某种原因,testng 6.4 及更高版本不再支持方法内的参数。

但是,如果您恢复到 6.3,我认为是支持该功能的最后一个版本。我有同样的问题并记得它曾经在我们的框架中工作,所以我开始一次恢复一个版本。他们为什么把它拿出来超出了我的理解。

使用 6.3,您可以执行以下操作:

<methods>
        <include name="test">
          <parameter name="Firefox"/>
        </include>
        <include name="test2">
           <parameter name="Chrome"/>
        </include>
        <include name="test3">...</include>
        <include name="test4">...</include>
</methods>

在某个地方有听众来电

iTestContext.getCurrentXmlTest().getParameters()

希望能帮助到你。如果对你来说太晚了,也许对别人来说是个好信息。

编辑:我撒谎了!您仍然可以使用最新的 testng 获得它;)

iTestResult.getMethod().findMethodParameters(iTestContext.getCurrentXmlTest())
于 2015-05-08T21:01:26.573 回答