Ich habe eine seltsame Situation mit Jenkins ... Wir haben grade Gradle für ein Projekt bei meiner Arbeit verwendet und wenn ich die Tests lokal mit JUnit ausführen, ist alles in Ordnung. Wenn diese Tests jedoch von jenkins für die Builds von Zweig "A" ausgeführt werden, schlägt nur ein Test wegen einer Assertion fehl (immer der gleiche Test).Junit Test in einem Jenkins Gradle Build, aber nicht lokal
org.junit.ComparisonFailure: erwartet: "E [ZZ0530] Z", aber war: "E [SY5654] Z"
Es sieht aus wie das Mock nicht gespritzt wird, oder die mock ignoriert das "Wann" spöttische Aussage. Hier
ist der Test:
@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());
}
Was ist eine Menge Fremde ist, dass, wenn ich einen Zweig „B“ von Ast zu schaffen „A“ alle Tests erfolgreich, wenn der Build auf jenkins erstellt wird.
Ich habe einige Nachforschungen angestellt und versucht, einen anderen Build zu erzwingen, den aktuellen Arbeitsbereich zu löschen und den Job neu zu erstellen, aber es hat nicht funktioniert.
Danke für Ihre Hilfe!
Danke für die schnelle Antwort, es hat wirklich geholfen! Ich arbeite tatsächlich mit schwerem Legacy-Code und dieser Test testet nicht einmal die aktuelle Klasse (es war nicht wirklich ein Unit-Test), es gab viele Singletons und nicht-injizierte Abhängigkeiten (die, wie du erwähnt hast, den Zustand verändert haben) der Objekte). Ich habe es entfernt und alles funktioniert gut! Danke noch einmal! –
Kein Problem, froh, dass Sie es repariert haben – robjwilkins