我有一些 JUnit 5 集成测试,有时会由于暂时性错误而失败,特别是抛出
MySpecificException
。
如果抛出
MySpecificException
,我需要这些测试重试最多 3 次,但如果抛出不同的异常,则立即失败。
我尝试使用
TestRule
接口来实现重试规则,如 Stack Overflow 答案中所建议的:
不幸的是,上述与
TestRule
相关的线程中提供的解决方案与 JUnit 5 不兼容。
如何使用 Kotlin 在 JUnit 5 中实现重试失败测试最多 3 次的重试机制?
MySpecificException
// Test Class Scope
@RetryMechanism(MySpecificException::class, retries = 3)
class MyTests {
@Test
fun testSomething() {
assertEquals(x, obj.doX())
}
}
(免责声明:我是维护者),它附带 // Test Method Scope
class MyTests {
@Test
@RetryMechanism(MySpecificException::class, retries = 3)
fun testSomething() {
assertEquals(x, obj.doX())
}
}
:
@RetryingTest
如果您想实现自己的解决方案,请随时查看sources