我想为每个班级执行相同的操作(就像@BeforeClass
)。我猜听众可以做一些你不必单独编写代码的事情,但我没有在每个方法/类中找到但可以通过监听器执行。有没有办法在每个类之前执行我的方法,或者只在该类的方法之前执行一次?
答案 0 :(得分:1)
检查TestListenerAdapter中的beforeConfiguration()
方法。
@Override
public void beforeConfiguration(ITestResult tr) {
if(tr.getMethod().getMethodName().equals("methodNameForBeforeClass")) {
//...
}
}
答案 1 :(得分:1)
在TestListenerAdapter中尝试与配置相关的方法:
class TestNGListener extends TestListenerAdapter {
@Override
public void beforeConfiguration(ITestResult tr) {
super.beforeConfiguration(tr);
logger.info("=========== Configuration method '{}' started ===========", tr.getMethod().getMethodName());
}
@Override
public void onConfigurationSuccess(ITestResult tr) {
super.onConfigurationSuccess(tr);
logger.info("=========== Configuration method '{}' finished ===========", tr.getMethod().getMethodName());
}
@Override
public void onConfigurationFailure(ITestResult tr) {
super.onConfigurationFailure(tr);
logger.error("!!!!!!!!!!! Configuration method '{}' failed !!!!!!!!!!!", tr.getMethod().getMethodName());
}
}
答案 2 :(得分:0)
扩展TestListenerAdapter
并覆盖onTestStart(ITestResult result)
方法。这将帮助您在每次测试开始时运行某些内容