当前位置: 首页 > 面试题库 >

在@After方法中检测Junit测试的失败或错误

冀阳文
2023-03-14
问题内容

JUnit中是否有一种方法可以在带注释的@After方法中检测测试用例是否存在测试失败或错误?

一个 丑陋的 解决方案是这样的:

boolean withoutFailure = false;

@Test
void test() {
  ...
  asserts...
  withoutFailure = true;
}

@After
public void tearDown() {
   if(!withoutFailuere) {
      this.dontReuseTestenvironmentForNextTest();
   }
}

这很丑陋,因为需要注意测试代码中的“基础结构”(withoutFailure标志)。

我希望可以通过@After方法获得测试状态!?


问题答案:

如果您有幸使用JUnit
4.9或更高版本,TestWatcher将完全按照您的要求进行。

分享并享受!



 类似资料:
  • 问题内容: 如果测试失败,我想截图。与其将所有测试方法都包裹在try / catch块中,不如将这种逻辑添加到以标记的方法中。 如何在当前测试失败的注解方法中进行检测? 问题答案: 如果带有注释的方法具有参数,则TestNG将自动注入测试结果。(来源:TestNG文档,第5.18.1节) 这应该做的工作:

  • 我想学习如何编写JUnit测试,但我完全失败了。 这是我的测试: 问题是这个简单的断言已经失败了。返回的列表是空的。我知道,我对这一切都不熟悉,但是从我的角度来看,失败是如此出乎意料,以至于我没有办法解决这个问题。 以下是全部代码(不太多): 要测试的功能就是这个,我知道它是有效的: 实际上,我只是想学习如何编写这样的测试,但是几天来我一直没有写出来。有相当多的例子和解释,但是不管我做什么尝试,我

  • 我有一个简单的测试用例: FileManager中的函数删除 /myDir下的所有文件,然后再次保留文件。 如上所述,我有一个。运行时,我可以按以下顺序查看所有打印: 但是,测试在失败。有两件事我不明白: > 我不明白,它在中失败了,为什么我仍然可以看到打印的,听起来就像是失败了,它没有停止运行,而是继续运行下一个测试?JUnit测试用例中的场景背后发生了什么?? 我不明白的另一件事是为什么tes

  • 我正在尝试从spring启动应用程序中的服务执行JUnit4测试,并且我一直使用init获取entityManagerFactory。 我还希望使用我的应用程序连接。属性文件,但它希望使用嵌入式hsqldb进行连接。 有人能给我指出正确的方向吗? 以下是相关代码: 应用特性: 主要内容: 实体: DAO/存储库: 服务: 测试: 本应包括以下内容: 堆叠:

  • 我正在使用一个Selenium/JUnit测试环境,我想实现一个类来执行“软断言”:这意味着我想让它记录断言是否通过,但在明确地告诉它验证断言之前,测试用例不会失败。这样,我可以检查页面上的多个字段,记录所有不匹配的字段。 我的“Verify”方法如下所示(/也存在类似的方法): 一旦验证了所有字段,我就调用以下方法: 目前,我只是使用来快速使测试用例失败;然而,这会使日志变得杂乱无章,导致一个无