可以
创建自定义的测试操作处理,例如:onTestStart
、onTestSuccess
、onTestFailure
等。它们可以使用 TestNG 自定义侦听器来处理(这是一篇关于此的文章)。
但是所有配置失败,跳过都不由它处理,例如用注释@BeforeTest
、@BeforeClass
、@AfterClass
等定义的方法。我有这样的日志:
FAILED CONFIGURATION: @BeforeTest setUp
org.testng.internal.thread.ThreadTimeoutException: Method org.testng.internal.ConfigurationMethod.setUp() didn't finish within the time-out 10000
...
SKIPPED CONFIGURATION: @BeforeClass openModule1
SKIPPED CONFIGURATION: @AfterClass closeModule1
SKIPPED CONFIGURATION: @BeforeClass openModule2
SKIPPED CONFIGURATION: @AfterClass closeModule2
SKIPPED: testOpenTabs
SKIPPED: testPrint
SKIPPED: testFilterDataRequest
是否可以为配置操作创建侦听器?
所有这些都是用IConfigurationListener
完成的。ConfigurationListener 类看起来像这样:
public class ConfigurationListener implements IConfigurationListener {
@Override
public void onConfigurationSuccess(ITestResult itr) {
Logger.log("LOG From ConfigurationListener onConfigurationSuccess:: ");
}
@Override
public void onConfigurationFailure(ITestResult itr) {
Logger.log("LOG From ConfigurationListener onConfigurationFailure:: ");
}
@Override
public void onConfigurationSkip(ITestResult itr) {
Logger.log("LOG From ConfigurationListener onConfigurationSkip:: ");
}
}
并且不要忘记为 TestNG 提供侦听器,例如,在基本测试类中使用注释:
@Listeners({ TestListener.class, ConfigurationListener.class})
public class TestBase {
...
这是一篇关于测试中不同听众的好文章