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