在一起运行时,eclipse中的JUnit测试失败

时间:2010-11-26 15:28:18

标签: eclipse junit

我有一组44个JUnit测试,我使用Eclipse运行(我从其他人那里得到了这些测试 - 我是JUnit测试的新手)。当我一起运行它们时,其中24个失败。但是,如果我然后单独运行失败的那些,那么其中一些确实会通过。测试确实需要一些时间 - 其中一个失败的例子需要大约一到两分钟才能完成,而只需要让它们在几秒钟内完成。

我通过右键单击它们所在的文件夹并选择“Run As - > JUnit Test”来启动多个测试。我正在使用JUnit 3.我在启动它时做错了什么/我是否缺少某种选项?

3 个答案:

答案 0 :(得分:12)

在没有看到测试的情况下很难肯定地说,但是听起来我觉得他们共享一些未在下一次测试中正确重置的状态或资源。

答案 1 :(得分:5)

GaryF的回答是一种可能性。另一个是测试具有竞争条件:测试是否成功取决于事物发生的速度(由于O / S的变化而变化)。如果您单独运行失败的测试,那么总是是否成功,或者它们有时会失败。如果他们有时会失败,那么你可能会遇到竞争条件。

答案 2 :(得分:5)

要扩展Gary的答案,右键单击并执行Run As - > JUnit,您不能保证运行测试的顺序,这也可能有助于破坏共享资源。

我首先看一下你的setup()和teardown()方法,以确保正确地重置共享资源。此外,由于您继承了这些测试,您可能希望查看是否有任何测试相互依赖。虽然这是一个不好的做法,应该进行更改,但您可以创建一个测试套件()来确保它们运行的​​顺序(至少在您可以重新分解和解耦测试之前)。