如何使用SpringJUnit4ClassRunner使用RunNotifier或RunListener

Aru*_*nav 1 java junit spring spring-test spring-junit

我想在测试失败时收到通知.理想情况下,我想知道我的@After注释方法是否通过了测试.我知道它们是一个可以用于此目的的RunListener,但它只有在我们使用JunitCore运行测试时才有效.如果测试用例失败或类似于RunListener可以与SpringJUnit4ClassRunner一起使用,有没有办法得到通知?

Sam*_*nen 5

Spring TestContext Framework提供了一个TestExecutionListener可用于实现此目的的SPI.

基本上,如果您实现TestExecutionListener(或更好地扩展AbstractTestExecutionListener),您可以实现该afterTestMethod(TestContext)方法.从TestContext传入的内容中,您可以访问抛出的异常(如果有的话).

这是Javadoc org.springframework.test.context.TestContext.getTestException():

获取在执行测试方法期间抛出的异常.

注意:这是一个可变属性.

返回:抛出的异常,如果没有抛出异常,则返回null

仅供参考:您可以通过@TestExecutionListeners注释注册您的客户监听器.

问候,

山姆