【发布时间】:2019-02-04 02:10:55
【问题描述】:
如何在 JUnit 5 中获取测试方法的名称?
【问题讨论】:
标签: java unit-testing kotlin junit junit5
如何在 JUnit 5 中获取测试方法的名称?
【问题讨论】:
标签: java unit-testing kotlin junit junit5
在您的测试方法中声明TestInfo 类型的参数,并为该方法声明JUnit will automatically supply an instance:
@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 实例中获取测试方法名称(以及更多),如上所示。
【讨论】:
除了关于将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());
}
【讨论】: