我有一个场景,其中许多测试套件被添加到TestNG对象中以运行。我在类TestClass中有一个testMethod()。我也在使用数据提供者。
我想知道测试方法内部哪个是当前的测试套件?
如何在不干扰测试方法的数据提供程序参数的情况下实现?
这是 Cedric 在经过大量说服后实现它的方式,正如您很久以前在这个线程中看到的那样:
@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());
}
得到了答案。
从Beust的书中,我得到了答案。
有多种方法可以定义数据提供程序方法:
@DataProvider
public void create() { ... }
@DataProvider
public void create(Method method) { ... }
@DataProvider
public void create(ITestContext context) { ... }
@DataProvider
public void create(Method method, ITestContext context) { ... }
最后一种方法帮助我解决了我的问题。此方法提供将要调用的方法引用以及测试上下文。