在java应用程序中运行时使用JUnit格式化程序

时间:2012-01-09 15:50:10

标签: java ant selenium junit

我得到了以下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代码中做类似的事情? 谢谢!

1 个答案:

答案 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 JavaInvoke ant from java, then return to java after ant termination