我有一个单元测试,它包含6个测试用例(@Test
-带注释的方法),当我将Java文件作为JUnit测试(从Eclipse工作台内部)运行时,这些测试用例都能完美运行。但是,当我从构建脚本运行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任务中获得更多(详细)的输出?有什么好方法可以调试这里发生的事情吗?提前感谢!
在使用Hibernate/Hypersonic SQL进行测试时,我也遇到过类似的类写入数据库的问题。在eclipse内部运行测试时,高超音速连接的寿命比蚂蚁使用的寿命短得多。因此,在Eclipse中的每个测试结束时,数据库都会被删除,但在ant中从一个测试一直保留到另一个测试。
如果你在数据库中写入数据,你需要在拆卸时删除它们,以确保下一次测试不会拾取你的数据。
如果不看到异常发生的堆栈,我就无法判断。这可能是类路径问题。查看关于JUnit的Java ANT文档,它应该可以帮助您启用调试跟踪。