在TestNG中开始上课之前获取当前的类测试方法

时间:2016-01-22 00:05:41

标签: java testng

我希望在启动之前从当前测试类中获取测试方法列表。当我尝试为此扩展TestListenerAdapter时,testContext.getAllTestMethods()返回了所有类的所有测试方法。但是如何只从当前类中获取方法?

2 个答案:

答案 0 :(得分:0)

我在这个问题上找到了部分答案。首先,我可以通过扩展TestListenerAdapter

来获取所有测试方法

public class MyListener扩展了TestListenerAdapter {

@Override
public void onStart(ITestContext testContext) {
    super.onStart(testContext);
    ITestNGMethod[] methods = testContext.getAllTestMethods();
    // here we can save methods into some object
}

然后,在@BeforeClass()的测试类中,我们可以访问该对象并从this.getClass()。getName()类中获取唯一的方法。因此,我们过滤当前类中的唯一方法。在这种情况下,我们可以访问所有必需的信息,如描述和其他重要的测试属性。

答案 1 :(得分:0)

如果您没有听众,您也可以按照OP自己的答案指定的方式使用@BeforeClass注释:

@BeforeClass
public void setup(ITestContext context) {
    for (ITestNGMethod method : context.getAllTestMethods()) {
        if(method.getRealClass() == this.getClass()) {
            // do what you have to do
        }
    }
}