【问题标题】:Generate XML Files Used by JUnit Reports生成 JUnit 报告使用的 XML 文件
【发布时间】:2020-10-03 00:45:48
【问题描述】:

我想以编程方式创建由 JUnit / TestNG 生成的测试报告。所以,这排除了ANT。我主要关心的是生成由 Junit 在执行测试用例时创建的 XML 文件。我已经读过 RunListener 可以帮助我实现这一目标,但我无法弄清楚如何?我正在使用 Selenium 创建我的测试用例。

如何生成由 JUnit 创建的 XML 文件?

【问题讨论】:

标签: xml testing selenium junit testng


【解决方案1】:

JUnit 不生成 XML 报告。 JUnit 没有标准的 XML 输出格式。

其他工具生成 XML,例如 Ant/Maven。因此,您需要做的第一件事是决定您想要哪种形式的 XML 文件,就像您在创建文件后要如何处理这些文件一样。

实际上,您对编程的限制并不排除 ANT。您可以以编程方式调用 ant(请参阅Invoke ant from java, then return to java after ant termination)。这可能是生成与 ant 兼容的文件的最简单方法。

如果您希望创建自己的 XML 文件,则可以创建一个扩展 RunListener 的类,然后通过调用 JUnitCore#run() 或类似方法运行您的测试。

public void main(String... args) {
    JUnitCore core= new JUnitCore();
    core.addListener(new RingingListener());
    core.run(MyTestClass.class);
}

您的 RunListener 只会发出适当的 XML。这很容易理解:重写方法 testRunStarted() 等并写出 XML。有关其工作原理的示例,请参阅 TextListener,它的作用相同,但用于文本。

【讨论】:

  • TextListener paga 已被删除。可以再分享一个链接吗?
【解决方案2】:

xml文件是由ant-junit生成的,我们可以通过程序来生成,代码如下:

Project project = new Project();
JUnitTask task = new JUnitTask();
project.setProperty("java.io.tmpdir",String); //set temporary directory
task.setProject(project);
JUnitTask.SummaryAttribute sa = new JUnitTask.SummaryAttribute();
sa.setValue("withOutAndErr");
task.setFork(false);
task.setPrintsummary(sa);
FormatterElement formater = new FormatterElement();         
FormatterElement.TypeAttribute type = new FormatterElement.TypeAttribute();
type.setValue("xml");
formater.setType(type);
task.addFormatter(formater);
JUnitTest test = new JUnitTest(String);// set Test.class.getname()          
test.setTodir(File); // set Location for your report
task.addTest(test);         
task.execute();

【讨论】:

  • 你使用了哪些jar文件?可以分享一下吗?
  • “org.apache.ant:ant:1.10.10”和“ant:ant-junit:1.6.5”
【解决方案3】:

如前所述,JUnit 不会生成报告。但是如果你使用 Maven 执行 mvn clean install test surefire-report:report 会成功的

https://examples.javacodegeeks.com/core-java/junit/junit-report-generation-example/

【讨论】:

    【解决方案4】:

    你问的几乎一样 here 如果您查看 TestNG 文档,您可以使用:

    org.testng.IReporter 接口只有一个方法: 公共无效生成报告(列表套件,字符串输出目录) 当所有套件都已运行时,TestNG 将调用此方法,您可以检查其参数以访问刚刚完成的运行的所有信息。

    【讨论】:

      猜你喜欢
      • 2017-05-19
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多