为什么我的Junit测试在一次运行时都会失败?

时间:2017-06-28 16:59:08

标签: java junit

我有一堆Junit测试。当我通过右键单击每个类来单独运行它们然后"运行为" - > " Junit测试",他们都通过了。但是,如果我单击一个包或单击src / test / java同时运行所有包,则其中许多都会失败并且有些通过。

这是正常的吗?

1 个答案:

答案 0 :(得分:1)

根据我的经验,这表明测试没有正确地清理自己。例如,如果您有任何调用静态方法的测试,那些静态调用可能会以影响未来测试的方式更改静态对象的状态。对于静态成员,只存在一个实例,因此当测试运行时,它们都将使用相同的实例。因此,当单独运行时,它们可能正常工作,因为它们在其原始状态下使用静态对象,但是当作为套件的一部分运行时,某些其他测试可能与静态对象进行交互,导致代码以不同的方式运行测试

因此,在这种情况下,您可以添加@After或@AfterClass方法,该方法将重置在运行测试时可能已更改的任何内容。