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);
}
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();
5条答案
按热度按时间at0kjp5o1#
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()或类似方法来运行测试。
您的RunListener只会发出适当的XML,这很容易理解:重写testRunStarted()等方法并写出XML。有关它如何工作的示例,请参见TextListener,它做了同样的事情,但针对的是文本。
djmepvbi2#
xml文件由ant-junit生成,我们可以通过程序来完成,代码如下所示:
vaj7vani3#
正如前面提到的,JUnit不生成报告,但是如果使用Maven,执行
mvn clean install test surefire-report:report
就可以了https://examples.javacodegeeks.com/core-java/junit/junit-report-generation-example/
bogh5gae4#
您在这里问的问题几乎相同。如果您查看TestNG文档,您可以用途:
只有一个方法的org.testng.IReporter接口:public void generateReport(List suites,String outputDirectory)当所有的suites都运行完之后,TestNG会调用这个方法,你可以检查它的参数来访问刚刚完成的运行的所有信息。
bqf10yzr5#
我找到了一个办法。
将以下内容添加到pom.xml中:
在运行时,这将创建一个标准JUnit格式的文件
TEST-junit-jupiter.xml
。参考文献: