我建立了一个Ant项目,其中包括使用JUnit的单元测试。
测试目标如下:
<target name="test">
<mkdir dir="target/test/reports"/>
<junit printsummary="yes" haltonfailure="yes">
<classpath>
<pathelement location="${test.classes.dir}"/>
<pathelement location="${test.junit.jar}" />
<pathelement path="${classes.dir}"/>
<pathelement path="${java.class.path}"/>
</classpath>
<formatter type="plain"/>
<batchtest fork="yes" todir="${test.reports.dir}">
<fileset dir="${test.src.dir}">
<include name="**/*Test*.java"/>
</fileset>
</batchtest>
</junit>
</target>
当我运行此测试时,它只在屏幕上显示测试摘要,如:
Buildfile: F:\test\build.xml
test:
[junit] Running com.mycompany.myproject.myTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.013 sec
[junit] Running com.mycompany.myproject.myTest1
[junit] Tests run: 3, Failures: 1, Errors: 0, Time elapsed: 0.018 sec
BUILD FAILED
F:\test\build.xml:30: Test com.mycompany.myproject.myTest1 failed
Total time: 1 second
无论如何,我可以告诉JUnit或Ant在屏幕上显示详细结果吗?
另外,如果我想在单元测试中写一些东西到屏幕上,我该怎么办呢?我试图在测试中插入System.out.println(),但它不会在屏幕上显示任何内容。
非常感谢。
答案 0 :(得分:3)
将showOutput
标志设置为true。
你想在考试过程中通过S.o.p做什么?
答案 1 :(得分:2)
将printsummary
值更改为withOutAndErr
,这将导致JUnit打印System.out和System.err文本
答案 2 :(得分:2)
收集junit结果并坐在“$ {test.reports.dir}”中,让您“看到”。 Ant的任务可以帮助您getting an HTML report
引入一个目标,从收集的数据中生成html(它们是XML文件)
<junitreport todir="./reports">
<fileset dir="${test.reports.dir}">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="./report/html"/>
</junitreport>
答案 3 :(得分:0)
另外,如果您想在屏幕上打印某些内容,请使用
<echo message="My message..." />
答案 4 :(得分:0)
<batchtest fork="yes" todir="${junit.report.dir}">
<formatter type="xml" />
<fileset dir="${application.build.stage.java.class.dir}">
<include name="**/*Test.class" />
</fileset>
</batchtest>
您可以在build.xml中使用它来生成报告为html文件。