Jenkins中有一個奇怪的情況......我剛開始在我的工作中使用Gradle作爲項目,當我在JUnit本地運行測試時,一切正常。但是,當jenkins爲分支「A」的構建運行這些測試時,由於斷言(總是相同的測試),只有一個測試失敗。Junit測試在Jenkins Gradle版本中失敗,但本地不能
org.junit.ComparisonFailure:預計: 「E [ZZ0530] Z」 不過是: 「E [SY5654] Z」
它看起來像模仿不注入或模擬被忽略的 「當」嘲笑聲明。
下面是測試:
@Test
public void testEvent() {
Date eventDateTime = TimeUtils.parseDate("2013-05-30 00:00:00");
event.setEventDatetime(eventDateTime);
//Mocking the prefix return
Mockito.when(eventCodeHelperMock.getEventCodePrefixFromEvent(event)).thenReturn("EZZ");
//Tested methode
eventWrapper.setSuffix("Z");
// Event code = prefix + date + suffix
assertEquals("EZZ0530Z", event.getEventCode());
}
什麼是很多奇怪的是,當我創建一個分支「B」從分支上詹金斯在創建時所建的「A」所有測試成功。
我已經做了一些研究,並試圖強制其他構建,消滅當前的工作空間和重新創建工作,但它沒有奏效。
感謝您的幫助!
感謝您的快速回答,它真的幫助!實際上,我正在使用沉重的遺留代碼,這個測試甚至沒有測試現在的類(不是真正的單元測試),有很多單例和非注入的依賴關係(就像你提到的那樣,它改變了狀態的對象)。我刪除它,一切正常!再次感謝! –
沒問題,很高興你解決它 – robjwilkins