我有许多使用Spring Test框架编写的非常复杂的集成测试。我想做的是在测试失败的情况下从服务器日志文件中获取最后n行。
为此,我创建了测试:
@TestExecutionListeners({LogFetchingTestListener.class})
public MyComplexTestClass extends AbstractTestNGSpringContextTests {
@Test
public void myComplexTest() {
// Here goes the test logic...
}
}
和测试监听器:
public class LogFetchingTestListener extends ABstractTestExecutionListener {
@Override
public void afterTestExecution(TestContext context) {
// Use some spring beans to get entities to connect to servers
}
}
一切都很好,但是我无法在TestContext
或其他地方找到属性,这会让我知道我的测试是否失败。
这非常关键,因为我进行了大量测试,并且获取成功运行的测试用例的日志完全没有意义。
Spring是否在测试侦听器中提供此信息?如果不是,是否有任何解决方法?
谢谢。
答案 0 :(得分:0)
我建议您改写afterTestMethod(TestContext)
而不是afterTestExecution(TestContext)
,因为前者将在测试类的@AfterMethod
个生命周期方法之后执行。
要获取异常(即测试失败的原因),您只需访问testContext.getTestException()
。