testNG @BeforeMethod使用带参数的lake param ITestResult提取;

时间:2016-06-28 19:54:56

标签: java testng qa

当我刚提取参数时,测试正确进行 当我尝试操作参数时,一切都出错RunTimeException! 帮助理解什么是错误!!

 @BeforeMethod
    public void beforeMethodBlock(ITestResult result){
        ReportGenerator.add(result.getParameters());    
    }
public class ReportGenerator {  
    private static Object[][] testData= new Object[50][2];
    private static Integer index;
    public static void add(Object[] data){
        testData[index++]=data;

    }
}

2 个答案:

答案 0 :(得分:0)

看起来您的index变量从未初始化,当您使用Integer代替int时(为什么?!),默认值为null

只需使用int并初始化它即可。

答案 1 :(得分:0)

  • testNG中的BeforeMethod可以包含ITestContext的参数
  • After Method可以有ItestResult的参数

如果必须获取接下来要执行的TestMethod的名称,可以通过 Method(java.lang.reflect.Method)对象来完成。

@BeforeMethod public void beforeMethod(Method m) { System.out.println(m.getName()); }

@BeforeMethod public void beforeMethod(ItestContext testContext) { // Do testContext related processing }

参考: -
How do I get the name of the test method that was run in a testng tear down method?