Junit测试在Jenkins-Gradle构建中失败,但在本地没有



我和詹金斯有一个奇怪的情况。。。在我的工作中,我们刚刚开始将Gradle用于一个项目,当我使用JUnit在本地运行测试时,一切都很好。但是,当jenkins为分支"A"的构建运行这些测试时,只有一个测试因为断言而失败(总是相同的测试)。

org.unit.ComparisonFailure:应为"E[ZZ0530]Z",实际为:"E[SY5654]Z"

看起来mock没有被注入,或者mock忽略了"when"mocking语句。

以下是测试:

@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());
}

更奇怪的是,当我从分支"a"创建分支"B"时,当在jenkins上创建构建时,所有测试都成功了。

我做了一些研究,试图强制进行另一个构建,删除当前的工作空间并重新创建工作,但没有成功。

谢谢你的帮助!

我过去也遇到过类似的问题,这是由于junits测试的运行顺序造成的。例如,一个测试修改了一个对象的状态,但直到测试以不同的顺序运行,测试意外失败,你才会看到它的效果。您发布的问题中没有足够的代码来判断是否确实如此,但我建议您检查测试的运行顺序,并查看您正在使用的对象,以确定这些对象的状态是否存在"脏"问题。

相关内容

  • 没有找到相关文章