我可以从 JUnit5 中的 @BeforeEach 中排除单个测试吗?

Mar*_*lik 3 java junit5

是否可以从@BeforeEachin 中排除单个测试JUnit5

请指导我。

谢谢

joh*_*ink 20

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

\n
public class MyClassTest {\n\n     @Test\n     void test1(){}\n     \n     @Nested\n     private class NestedTestBlock {\n      \n      @BeforeEach\n      void beforeEach(){}\n    \n      @Test\n      void test2() {}\n    \n      @Test\n      void test3() {}\n     }\n    \n}\n
Run Code Online (Sandbox Code Playgroud)\n

  • 您能提供示例代码吗? (4认同)

Kar*_*cki 5

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

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

但是将不需要的测试移动@BeforeEach到单独的类会更干净。

  • 使用@Tag代替名称可能更方便。 (9认同)