我有一个项目有3个测试类 - TextModelTest
,LocalClassificationTaskTest
,ModelFetcherTest
。 单独运行时,它们中的每一个都会通过,但是一次运行(来自Eclipse)时,第三个(ModelFetcherTest
)的所有测试都会失败,并显示NullPointerException
。令人惊讶的是,日食甚至不会停留在我放入测试类的断点处(ModelFetcher
)。JMockit @Mocked annotation导致其他测试失败
做一些研究(试图忽略每一个成功的测试,以找出哪一个导致第三类失败)后,我注意到,在第二个测试类(LocalClassificationTaskTest
)具有ModelFetcher
类型的嘲笑场,这是第三测试类的CUT:
@Mocked ModelFetcher modelFetcher;
在ModelFetcherTest
:
@Tested ModelFetcher modelFetcher;
我除去@Mocked
注释并用代替它的逻辑0(这是更麻烦和冗长,但无论如何),现在一切正常。
请注意,问题仅在eclipse中发生。所有测试通过maven运行时传递。 没有种族问题,所有的测试通过和失败一致(不涉及运气)。
@Mocked
注解是否会影响同一个项目中的其他测试用例?
您应该显示[这三个测试类的最小版本,当它以“正确”顺序执行时会重现失败](http://stackoverflow.com/help/mcve)。否则,没有办法提供实际的答案。 –