首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JUnit 5 --全球超时?

JUnit 5 --全球超时?
EN

Stack Overflow用户
提问于 2017-10-31 17:32:30
回答 3查看 3.6K关注 0票数 9

在JUnit 5中,对所有测试强制执行全局超时的最佳方法是什么?

我看到JUnit 4有一个@Rule特性,但这已经在JUnit 5中删除了,而且我不希望每次测试都要复制粘贴assertTimeoutPreemptively

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-05-18 16:06:12

您提到了JUnit 4 Timeout @Rule,它允许在每个测试类的基础上指定超时。JUnit 5.5在@Timeout注释中有一个直接的等价物。这可以以与JUnit 4规则相同的方式应用于类级别,在这种情况下,它适用于类及其@Nested类中的所有测试。它还可以应用于单个@Test或生命周期(@BeforeAll@BeforeEach@AfterEach@AfterAll)方法。

根据JUnit 5用户指南

@Timeout注释允许您声明,如果测试、测试工厂、测试模板或生命周期方法的执行时间超过了给定的持续时间,它就会失败。持续时间单位默认为秒,但是可配置的。 ..。 要对测试类及其所有@Nested类中的所有测试方法应用相同的超时,可以在类级别声明@Timeout注释。然后,它将应用于该类及其@Nested类中的所有测试、测试工厂和测试模板方法,除非被特定方法或@Nested类上的@Timeout注释覆盖。请注意,在类级别声明的@Timeout注释不应用于生命周期方法。

票数 3
EN

Stack Overflow用户

发布于 2020-01-23 13:03:27

Junit 5.5确实支持“全局超时”。只要看看相应属性旋钮的文档

例如,尝试打开文件src/test/resources/junit-platform.properties并粘贴到那里:

代码语言:javascript
复制
junit.jupiter.execution.timeout.default=42 ms
票数 8
EN

Stack Overflow用户

发布于 2017-11-01 14:05:31

在JUnit版本5.5之前,不可能对JUnit木星中的测试强制执行全局的、先发制人的超时。此功能是作为JUnit 5.5的一个实验性特性添加的。

要查看围绕此特性的讨论,请参见以下问题:https://github.com/junit-team/junit5/issues/80

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47041313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档