我有一個項目有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)。否則,沒有辦法提供實際的答案。 –