我目前正在JUnit中编写一系列测试.我需要自动将结果导出为XML.我在阅读,最好的方法是扩展RunListener类并以这种方式编写XML.下面是我到目前为止所做的一些示例,但我正在努力解决如何提取已运行的每个测试的信息."描述"类似乎没有任何有用的get方法,我觉得我可能会以错误的方式解决这个问题.
有人可以协助如何从描述中获取有用的信息(例如,测试通过/失败,测试持续时间,测试名称等)或者就我实际应该做什么给我一些建议?
public class XmlListener extends RunListener {
private final PrintStream fWriter;
public XmlListener(JUnitSystem system) {
this(system.out());
}
public XmlListener(PrintStream writer) {
this.fWriter = writer;
}
@Override
public void testRunStarted(Description description) {
fWriter.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
}
@Override
public void testRunFinished(Result result) {
fWriter.append("\t\t</suite>\n");
fWriter.append("\t</suites>\n");
fWriter.append("</result>\n");
printHeader(result.getRunTime());
printFailures(result);
printFooter(result);
}
@Override
public void testStarted(Description description) {
fWriter.append("\t\t\t<case>\n");
fWriter.append("\t\t\t\t<timestamp>" + "</timestamp>\n");
fWriter.append("\t\t\t\t<className>" + "</className>\n");
fWriter.append("\t\t\t\t<testName>" + "</testName>\n");
}
@Override
public void testFinished(Description description) {
fWriter.append("\t\t\t\t<duration>" + "</duration>\n");
fWriter.append("\t\t\t</case>\n");
Iterator it = description.getAnnotations().iterator(); …Run Code Online (Sandbox Code Playgroud)