我想生成包含已执行测试信息的 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. 有人可以帮我以我想要的方式显示/保存它吗?
相关分类