猿问

JUnit如何在xml报告文件中保存DisplayName

我想生成包含已执行测试信息的 XML 报告文件。以前我@Rule在 JUnit4 中使用如下所示,但现在我想显示注释或一些简短的描述而不是 testName。经过一些研究,我发现@DisplayNameJUnit5 似乎适合我的需求。现在我必须更新 my@Rule以显示@DisplayName内容而不是testName[number].className. 测试是用 JUnit 类编写的,具有以下结构


@Test

@DisplayName("This text should be displayed as name")

public void testy1() {...}

为了显示运行测试的结果和名称,我使用以下方案创建了新规则


@Rule

public TestRule watchman = new TestWatcher() {

    @Override

    public Statement apply(Statement base, Description description) {

                return super.apply(base, description);

            }

@Override

protected void succeeded(Description description) {

        try {


            junitWriter.write("\n   <test>"

                            + "\n       <name>" + description.getDisplayName() + "</name>"

                            + "\n       <result>..

                            + "\n       <message>..

                            + "\n   </test>");

        } catch [..]

    }

@Override

        protected void failed(Throwable e, Description description) {

            //same scheme with error

        }

}

要开始我运行的测试


Result result = JUnitCore.runClasses(mainSuiteClassCreatingReport);

System.out.printf("Test ran: %s, Failed: %s%n", result.getRunCount(), result.getFailureCount());

在生成的 XML 文件而不是“DisplayName”注释中,我不断收到methodName[number].className. 有人可以帮我以我想要的方式显示/保存它吗?


翻阅古今
浏览 213回答 1
1回答
随时随地看视频慕课网APP

相关分类

Java
我要回答