首页/开发/软件测试速查/JUnit 5 生命周期与超时
自动化测试66 条

JUnit 5 生命周期与超时

JUnit 5 生命周期回调分方法级(@BeforeEach/@AfterEach)与类级(@BeforeAll/@AfterAll);@TestInstance(PER_CLASS) 让类级回调免写 static,@Timeout 给用例设置执行时长上限。

软件测试速查开发更新于 2026-10-12

类级资源与超时

类级资源与超时
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class DbTest {
    @BeforeAll
    void init() { pool = createPool(); }

    @Timeout(5)
    @Test
    void queryFast() { ... }
}
PER_CLASS 下测试实例在用例间共享,实例字段里的可变状态需要自行复位。

易错点

  • 在 @AfterEach 里重建重资源(每条用例新建连接池),执行时间被放大
  • 依赖实例在用例间保持状态,切换 PER_CLASS 后未同步调整清理逻辑

数据来源与参考

  • JUnit 5 User Guide:Test Instance Lifecycle 与 @Timeout(junit.org)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌