gpt4 book ai didi

java - 标记为运行太长的 JUnit 测试失败

转载 作者:IT老高 更新时间:2023-10-28 20:54:47 26 4
gpt4 key购买 nike

我想停止运行太长时间的 junit 测试并将其标记为失败(在 Maven 3 构建中执行)。我知道三种方法:

1) 使用带有超时参数的Test注解:

@Test(timeout=100)
public void testWithTimeout() {
...
}

2) 使用规则注解:

@Rule
public Timeout globalTimeout = new Timeout(100);

3) 使用以下选项配置 maven-surefire-plugin:

forkedProcessTimeoutInSeconds=1
reuseForks=false

线索是 1) 和 2) 需要更改每个测试(当您有数千个测试时会很痛)。 3) 解决方案是 Not Acceptable ,因为在许多模块中,首先测试会启动测试使用的上下文 - 测试性能会急剧下降。

您还有其他想法如何实现这一目标吗?任何棘手的解决方案(不涉及修补 JUnit :))?

最佳答案

您可以尝试通过编写一个扩展 BlockJunit4ClassRunner 的类来定义自己的测试运行器,如果测试执行超过定义的超时则失败。然后用 @RunWith(CustomizedTestRunner.class) 注释你的测试类您仍然需要修改类,但可以在单个位置指定超时值。

关于java - 标记为运行太长的 JUnit 测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26107721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com