TestNG,有像IClassListener这样的类级别监听器,就像ITestListener一样

时间:2015-07-23 08:59:43

标签: selenium testng

我想为每个班级执行相同的操作(就像@BeforeClass)。我猜听众可以做一些你不必单独编写代码的事情,但我没有在每个方法/类中找到但可以通过监听器执行。有没有办法在每个类之前执行我的方法,或者只在该类的方法之前执行一次?

3 个答案:

答案 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)方法。这将帮助您在每次测试开始时运行某些内容