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