将@Disabled
或@Ignore
注释添加到JUnit测试中有什么好处,例如:
@Test
@Disabled
void testSomething() { /* ... */ }
而不只是删除@Test
注释?
void testSomething() { /* ... */ }
无论哪种方式,都不应该执行测试。
答案 0 :(得分:3)
这些注释的实用性主要在于文档/报告。运行JUnit套件时,您将获得结果报告。 @Ignored
/ @Disabled
测试将在该报告中标记为(带有可选注释)。
这使您可以跟踪被忽略/禁用的测试数量。您可以围绕此设置策略(例如,如果测试是@Ignored
一个月,只需删除它),或者如果@Ignored
太多测试,则CI系统会失败。您可以制作显示通过/失败/跳过的趋势的图表。
真的,这一切都归结为你想要跟踪测试套件的演变,并且想要看到一部分"跳过"测试,或测试暂时中断/不再有用时测试的总数。
答案 1 :(得分:2)
@Disabled或@Ignore注释可用于禁用或忽略测试套件中的测试方法。
@Disabled在junit5中介绍。它只接受一个可选参数,表示禁用此测试的原因。示例:
@Disabled("Do not run in lower environment")
添加@Disabled或@Ignore的优势:
搜索能力:您可以轻松识别源代码中的所有@Ignore或@Disabled注释,而未注释或注释掉的测试并不是那么容易找到。
可维护:以后可以轻松维护或修改。使用注释始终是一种好习惯。
答案 2 :(得分:0)
在我看来,@ Igore比评论整个测试方法块更清晰。
此外,当您运行测试套件时,您会收到有关某些测试被忽略的警告。如果你发表评论,你就不会得到它。也许有一天你会想要启用它
答案 3 :(得分:0)
对于打算手动运行的测试来说,它可以是一种有用的保护措施,确保它永远不会自动运行。
还有其他跳过测试的方法,但很少有像测试本身那样强大,而不是依赖测试引擎来注意自定义标签、类别、模式或其他任何东西。
IDE 通常允许您在需要时手动显式运行禁用的测试,无需更改。但前提是它将其识别为测试。
另外:正如对 OP 的评论,您可以在整个测试类中使用它,而在 JUnit 5 中,您需要使用取消标记方法来触摸每个测试用例以跳过它们。
此外:取消标记可能会触发“未使用的代码”-警告,这可能是不必要的