Java TestNG::如何在TestMethod中获取TestSuite名称?
我有一个场景,其中许多测试套件被添加到TestNG对象中以供运行。我在TestClass类中有一个testMethod。我也在使用dataProvider 我想知道在测试方法中,哪个是当前的测试套件Java TestNG::如何在TestMethod中获取TestSuite名称?,java,testng,selenium-grid,Java,Testng,Selenium Grid,我有一个场景,其中许多测试套件被添加到TestNG对象中以供运行。我在TestClass类中有一个testMethod。我也在使用dataProvider 我想知道在测试方法中,哪个是当前的测试套件 我如何在不干扰TestMethod的DataProvider参数的情况下实现它呢?以下是Cedric在非常有说服力的情况下实现它的方法,正如您很久以前在thread中看到的: @DataProvider(name = "A") protected Object[][] dp(ITestCon
我如何在不干扰TestMethod的DataProvider参数的情况下实现它呢?以下是Cedric在非常有说服力的情况下实现它的方法,正如您很久以前在thread中看到的:
@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());
}
我知道答案了
从那一刻起,我得到了答案
定义数据提供程序方法有多种方法:
@DataProvider
public void create() { ... }
@DataProvider
public void create(Method method) { ... }
@DataProvider
public void create(ITestContext context) { ... }
@DataProvider
public void create(Method method, ITestContext context) { ... }
最后一种方法帮助我解决了问题。
此方法提供了将要调用的方法引用以及测试上下文。谢谢@Vidya,但我这里有一个不同的场景。我的dataProvider方法接受像dpMethod method{return{{myMap.getmethod.getName}};}这样的参数,我不想更改此逻辑。我仍然可以继续使用ITestContext并在dataProvider方法中获取方法名吗??