繁体   English   中英

JUnit测试在Eclipse工作台中通过,但在Ant构建中失败

[英]JUnit test passes in Eclipse workbench but fails in Ant build

我有一个包含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任务中获得更多(详细)输出吗? 有什么好的方法可以调试这里发生的情况吗? 提前致谢!

我不能不看到发生异常的堆栈跟踪。 这可能是类路径问题。 查看有关JUnit的Java ANT文档,它应该可以帮助您启用调试跟踪。

使用Hibernate / Hypersonic SQL进行测试时,写入数据库的类遇到了类似的问题。 在eclipse中运行测试时,Hypersonic连接的寿命比ant使用的寿命短得多。 结果,在Eclipse中每次测试结束时都会删除数据库,但是在ant内部测试之间仍然存在测试。

如果您在数据库中写入数据,则需要将其删除,以确保下一个测试不会拾取您的数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM