首页 > 解决方案 > TestNG - 可以在测试执行报告中忽略数据提供者测试方法吗?

问题描述

我正在使用 dataProvider 方法并使用此 dataprovider 形成一个 URL,并且应该将此形成的 URL 传递给下一个 dataprovider 。在 TestNG - 测试执行报告中可以忽略这个数据提供者测试方法吗?

在 TestNG - 测试执行报告中应该忽略第一个 DataProvider A

@Test(dataprovider = "A")    
public void getURL(String URL){    
    finalURL = URL +apiURL;    
}

@Test(dataprovider ="B")    
public void getStatus(){    
    closeableHttpResponse = restClient.get(finalURL, headerFormation());     
}   

标签: testngtestng-dataprovider

解决方案


没有开箱即用的方法来做到这一点。数据驱动的测试方法也是一种@Test方法。TestNG 不会将它们与常规测试方法区分开来。

所以TestNG中的默认报告没有这个能力。

您可以改为执行以下操作:

  1. 确保您使用的是 TestNG 7.0.0-beta1(截至今天的最新发布版本)
  2. 实现org.testng.IReporter(testng 的报告监听器)。
  3. 对于每个ITestResult对象,只需检查其是否为数据驱动方法(您可以通过检查result.getMethod().isDataDriven()并检查其是否为真来做到这一点)
  4. 如果 (3) 是false您为它构建报告,如果 (3) 是true跳过报告测试方法的结果。

推荐阅读