我有一个场景,其中许多测试套件被添加到TestNG对象以便运行。我在类TestClass中有一个testMethod()。我也在使用dataProvider。
我想知道测试方法里面是当前的TestSuite ??
如何在不干扰TestMethod的DataProvider参数的情况下实现?
答案 0 :(得分:0)
这是Cedric在很有说服力之后实现它的方式,正如你在很久以前在this帖子中看到的那样:
@DataProvider(name = "A")
protected Object[][] dp(ITestContext tc) {
return new Object[][] {
{ tc }
};
}
@Test(dataProvider = "A")
public void testA(ITestContext tc) {
System.out.println("SUITE NAME:" + tc.getSuite().getXmlSuite().getName());
}
答案 1 :(得分:0)
得到答案。
从book by Beust我得到了答案。
定义dataProvider方法有多种方法:
@DataProvider
public void create() { ... }
@DataProvider
public void create(Method method) { ... }
@DataProvider
public void create(ITestContext context) { ... }
@DataProvider
public void create(Method method, ITestContext context) { ... }
最后一种方法帮助我解决了我的问题。 此方法提供了将要调用的方法引用以及测试上下文。