我得到了以下JUnit与ant运行良好的东西,但到目前为止我还没有找到如何在main()方法中使用我的格式化程序(当不使用ant时)。
这是蚂蚁任务:
<junit printsummary="true" errorProperty="test.failed" failureProperty="test.failed">
<classpath refid="test.class.path" />
<!-- use multiple formatters -->
<formatter type="brief" usefile="false" />
<!-- console log -->
<formatter type="xml" classname="x.selenium.output.SeleniumFrameworkFormatter" />
<!-- file log -->
<test name="x.selenium.SeleniumFramework" haltonfailure="no" outfile="result" todir="${build.temp.dir}" />
<junit>
在Java代码中,我将此作为替代方案,但这会打印到控制台,而不是使用我的格式化程序来创建一个漂亮的html文件:
JUnitCore junit = new JUnitCore();
Result result = junit.run(classes);
有没有人知道如何在Java代码中做类似的事情? 谢谢!
答案 0 :(得分:2)
没有一种很好的方法可以从纯JUnit生成格式化输出。获得与ant相同输出的最简单方法是运行ant本身。您可以使用以下内容直接运行ant:
Process p = Runtme.getRuntime.exec("/path/to/ant target");
或类似,或者您可以直接调用org.apache.tools.ant.Main方法,但要注意这会调用System.exit()
。
另请参阅以下有关从Java运行Ant的答案:Run ant from Java和Invoke ant from java, then return to java after ant termination。