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



我有一个场景,其中许多测试套件被添加到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) { ... }

最后一种方法帮助我解决了我的问题。此方法提供将要调用的方法引用以及测试上下文。

最新更新