无论如何,我们可以在Junit 5中实现动态DisplayName(例如:用系统属性替换)

@DisplayName("The test cases is running agains {os.name}")
public void testOSVersion(){
     .....
}


我们想要这样做以使测试用例更具描述性。

谢谢

最佳答案

默认情况下是不可能的。

TestReporter

在当前的Jupiter版本中,您始终可以使用TestReporter向报告中发送额外的数据:

@Test
void testOSVersion(TestReporter testReporter) {
    testReporter.publishEntry("os.name", System.getProperty("os.name"));
}


有关详细信息,请参见https://junit.org/junit5/docs/current/user-guide/#writing-tests-dependency-injection

DisplayNameGenerator

Jupiter即将发布的5.4.0版本已经可以作为SNAPSHOT使用,它支持称为@DisplayNameGeneration的注释,该注释指向自定义的DisplayNameGenerator实现。在这里,您可以使用测试方法的名称,附加的注释等动态生成测试方法的显示名称。

有关详细信息,请参见
https://junit.org/junit5/docs/snapshot/user-guide/#display-name-generators

09-07 15:14