Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java TestNG::如何在TestMethod中获取TestSuite名称?_Java_Testng_Selenium Grid - Fatal编程技术网

Java TestNG::如何在TestMethod中获取TestSuite名称?

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

我有一个场景,其中许多测试套件被添加到TestNG对象中以供运行。我在TestClass类中有一个testMethod。我也在使用dataProvider

我想知道在测试方法中,哪个是当前的测试套件


我如何在不干扰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方法中获取方法名吗??