JUnit 5 中的 TestName 规则等效项是什么?

2022-09-01 06:40:48

如何在 JUnit 5 中获取测试方法的名称?


答案 1

在测试方法中声明一个类型的参数,JUnit 将自动为该方法提供该参数的实例:TestInfo

@Test
void getTestInfo(TestInfo testInfo) { // Automatically injected
    System.out.println(testInfo.getDisplayName());
    System.out.println(testInfo.getTestMethod());
    System.out.println(testInfo.getTestClass());
    System.out.println(testInfo.getTags());
}

您可以从实例中获取测试方法名称(以及更多),如上所示。TestInfo


答案 2

除了关于注入测试方法的书面内容之外,还可以注入带有注释的方法,这些方法有时可能很有用:TestInfoTestInfo@BeforeEach@AfterEach

@BeforeEach
void setUp(TestInfo testInfo) {
  log.info(String.format("test started: %s", testInfo.getDisplayName());
}
@AfterEach
void tearDown(TestInfo testInfo) {
  log.info(String.format("test finished: %s", testInfo.getDisplayName());
}

推荐