如何使用SpringJunit4ClassRunner使用RunNotifier或RunListener



我想在测试失败时获得通知。理想情况下,我想知道测试是通过我的 @ @后带注释的方法通过还是失败。我知道它们是一个可以用于此目的的Runlistener,但仅当我们使用JunitCore进行测试时才有效。是否有一种方法可以通知测试案例失败或与Runlistener类似的东西,可以与SpringJunit4ClassRunner一起使用?

Spring TestContext框架提供了可用于实现此目的的TestExecutionListener SPI。

基本上,如果您实现TestExecutionListener(或更好地扩展AbstractTestExecutionListener),则可以实现afterTestMethod(TestContext)方法。从传递的TestContext中,您可以访问被抛出的异常(如果有)。

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

获取在执行测试方法期间抛出的例外。

注意:这是一个可变特性。

返回:抛出的例外,如果没有例外,则无效 投掷

fyi:您可以通过@TestExecutionListeners注释注册客户听众。

问:

sam

替代方案是junits内置的 TestWatcher规则。

该规则使您可以选择要通知的内容。这是Junit GitHub文档的一个紧凑示例

@Test 
public class WatcherTest {
  @Rule
  public final TestRule watcher = new TestWatcher() {
    @Override
    protected void failed(Throwable e, Description) {}
    // More overrides exists for starting, finished, succeeded etc
  };
  @Test
  public void test() {}
}

相关内容

  • 没有找到相关文章

最新更新