【问题标题】:Can I exclude an individual test from @BeforeEach in JUnit5?我可以从 JUnit5 中的 @BeforeEach 中排除单个测试吗?
【发布时间】:2019-11-08 18:44:07
【问题描述】:

是否可以从@BeforeEach 中的JUnit5 中排除单个测试?

请指导我。

谢谢

【问题讨论】:

    标签: java junit5


    【解决方案1】:

    您可以使用TestInfo 并通过检查测试名称来编写此条件:

    @BeforeEach 
    void init(TestInfo info) {
      if (info.getDisplayName().equals("mySpecialTestName") {
        return; // skip @BeforeEach in mySpecialTestName test
      }
    }
    

    但将不需要@BeforeEach 的测试移到单独的类会更简洁。

    【讨论】:

    • 使用@Tag 代替name 可能更方便。
    • @IvanLymar 以某种方式感觉像是对过于复杂的测试类的破解
    • @KarolDowbecki 我已尝试应用您的解决方案,但它似乎不起作用,我做错了什么吗? github.com/marcin-kulik/spring-boot-rest-app-demo/blob/…
    • @KarolDowbecki 我的班级只有 3 个测试,我认为这很简单但我可能错了,我在上面的评论中给出了我在 Github 上的代码的链接,请你看看我的测试班? bardzo, bardzo prosze:)
    【解决方案2】:

    您可以将需要 before-each 行为的测试移动到内部的 ˋ@Nested´ 子类中,并将 before-each 方法放在那里。

    【讨论】:

    • 能否提供示例代码?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-11
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多