我有一个单元测试,其中包含6个测试用例(@Test
- 注释方法),当我将Java文件作为JUnit Test(来自Eclipse工作台内部)运行时,它们都运行得很好。但是当我从buildcript运行 run-tests
Ant目标时,它们会失败并显示以下控制台输出:
[junit] Running com.me.myproject.WidgetTest
[junit] Tests run: 6, Failures: 6, Errors: 0, Time elapsed: 1.737 sec
[junit] Test com.me.myproject.WidgetTest FAILED
以下是run-tests
目标的JUnit部分:
<junit fork="yes" forkmode="once" dir="${basedir}" printsummary="yes" haltonerror="no" haltonfailure="no">
<classpath>
<path refid="test.class.path"/>
<pathelement location="${mainBuildDir}"/>
<pathelement location="${testBuildDir}"/>
</classpath>
<formatter type="xml"/>
<batchtest todir="${genUnitTestReportsDir}">
<fileset dir="${testJavaSrcDir}">
<include name="**/*Test*.java"/>
</fileset>
</batchtest>
</junit>
有人听说过这件事吗?有没有办法从JUnit的ant任务中获得更多(详细)输出?调试这里发生的事情的任何好方法?提前谢谢!
答案 0 :(得分:0)
如果没有看到发生异常的堆栈跟踪,我无法分辨。这可能是一个类路径问题。查看有关JUnit的Java ANT文档,它应该可以帮助您启用调试跟踪。
答案 1 :(得分:0)
对于在我的测试中使用Hibernate / Hypersonic SQL时写入数据库的类,我遇到了类似的问题。在eclipse中运行测试时Hypersonic连接的寿命比ant使用的短得多。因此,在Eclipse中的每个测试结束时都会删除数据库,但是在ant中从测试到测试都会保持不变。
如果您在数据库中写入数据,则需要在拆除时将其删除,以确保下一次测试不会获取数据。