我正在为基于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”。但是我需要为每个包含的方法提供一个自己的参数。有谁知道解决方案?
答案 0 :(得分:1)
为此而不是在测试套件xml中分配参数,您可以单独为测试分配参数。为此,您不必在suite.xml中添加每个参数。
@Parameters({ "datasource", "jdbcDriver" })
@test
public void sampleTest(String ds, String driver) {
// your test method
}
希望这会对你有用1
答案 1 :(得分: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())