在测试失败的情况下构建,将测试标记为非强制性

时间:2018-06-01 08:36:35

标签: java maven junit

我使用Java 8,Maven,(Spring,Mockito),JUnit。

想法是知道是否可以使用测试构建我的应用程序(不跳过而不是忽略)。并设置一些不是强制性的。

也许有一个注释,如" @ FailureWarningOnly"在JUnit或其他地方?

要求:

  • 我不想让所有测试都失败,但只有这些测试不是必需的。
  • 我不想使用@Ignore,因为我想在构建阶段出现问题时获取信息。
  • 我还想要解决方案的错误的堆栈跟踪异常。

1 个答案:

答案 0 :(得分:2)

我个人并不喜欢做一些测试必须成功,而其他测试可能
这是一扇敞开的门,让你的考试更加脆弱,不那么有用,可能会给你带来不良习惯 在大多数情况下,您可以使用配置文件或改进测试设置以使其行为可重现。

在极少数情况下,如果不可能,您可以假设是否不正确意味着应忽略测试的下一个陈述。
您可以手动创建它或使用测试框架的功能。

JUnit(4和5)提供Assumptions即:

  

支持条件测试的实用程序方法的集合   基于假设的执行。与失败直接对比   断言,失败的假设不会导致测试失败;   相反,失败的假设会导致测试中止。

看起来像是:

@Test
public void foo(){
  Assume.assumeTrue(shouldFailTestInThisCase(...));
  // my assertions
  Assert.assertEquals(...);
  Assert.assertEquals(...);
}