如何在JUnit 5中获得测试方法的名称?
答案 0 :(得分:5)
在测试方法中声明类型为TestInfo
的参数,JUnit会自动为该方法提供该参数的实例:
@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
实例中获得测试方法名称(以及更多),如上所示。
答案 1 :(得分:3)
除了编写有关注入TestInfo
来测试方法的文字外,还可以注入TestInfo
到用@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());
}
答案 2 :(得分:2)
我个人更喜欢使用此:
System.out.println(Thread.currentThread().getStackTrace()[1].getMethodName());