我目前的方法是来自我的应用程序,只需调用ant构建,它将创建所需的junit报告,但我想要灵活地以编程方式编写junit报告。
我试过这个方法Ant:以编程方式创建JUnit报表任务
FileSet fs = new FileSet();
fs.setDir(new File(".."));
fs.createInclude().setName("TEST-*.xml");
XMLResultAggregator aggregator = new XMLResultAggregator();
aggregator.addFileSet(fs);
AggregateTransformer transformer = aggregator.createReport();
transformer.setFormat(Format.FRAMES);
transformer.setTodir(new File("..");
但是我甚至不能让它运行。还有别的主意吗?
您所粘贴的代码相当于调用junitreport任务:
<junitreport todir="..">
<fileset dir="..">
<include name="TEST-*.xml" />
</Fileset>
<report format="frames" todir=".." />
</Junitreport>
你需要把它放到一个方法中并自己运行它。这段代码将获取所有名为TEST-*.xml
的文件,并用它们创建一个报告。它将而不是创建这些文件。这些文件是由Ant中的junit任务创建的。所以你需要:
- 以编程方式运行junit任务(参见JUnitTask (Apache Ant API)),确保TEST*.xml文件被创建在某个临时目录下。
- 运行上面的代码,使用这些临时文件生成报告。
最简单的方法可能是您所做的,在某处有一个build.xml
,并直接调用ant。如果您使用的文件集是稳定的,那么这可能是最简单的方法。使用ProcessBuilder java类。