如何根据 Kotlin 中是否抛出特定异常来重试失败的 JUnit 5 测试

问题描述 投票:0回答:1

问题:

我有一些 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())
        }
    }
    
    
        
java kotlin integration-testing junit5
1个回答
0
投票
JUnit Pioneer

(免责声明:我是维护者),它附带 // Test Method Scope class MyTests { @Test @RetryMechanism(MySpecificException::class, retries = 3) fun testSomething() { assertEquals(x, obj.doX()) } }

@RetryingTest

如果您想实现自己的解决方案,请随时查看 
sources

Eclipse Public License v2)。

© www.soinside.com 2019 - 2024. All rights reserved.