Junit 5中的动态DisplayName

时间:2018-11-05 23:20:23

标签: java unit-testing junit5

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

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

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

谢谢

1 个答案:

答案 0 :(得分:2)

默认情况下是不可能的。

File.open("data_reader.txt") {|d| print d} # => #<File: object in mem>

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

TestReporter

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

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

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

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