有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JUnit5中的java动态显示名

在JUnit5中,我们是否可以实现动态显示名(例如:替换为系统属性)

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

我们希望这样做,使测试用例更具描述性

谢谢


共 (1) 个答案

  1. # 1 楼答案

    默认情况下这是不可能的

    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版(已作为快照提供)支持一个名为@DisplayNameGeneration的注释,该注释指向一个自定义的DisplayNameGenerator实现。在这里,您可以使用测试方法的名称、附加的注释等动态生成测试方法的显示名称

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