gpt4 book ai didi

jenkins - Junit 测试在 Jenkins Gradle 构建中失败,但不是在本地

转载 作者:行者123 更新时间:2023-12-03 03:21:20 24 4
gpt4 key购买 nike

我对 Jenkins 有一种奇怪的情况......我们刚刚开始在我的工作中使用 Gradle 进行项目,当我使用 JUnit 在本地运行测试时,一切都很好。但是当 Jenkins 为分支“A”的构建运行这些测试时,只有一个测试因为断言而失败(总是相同的测试)。

org.junit.ComparisonFailure:预期:“E[ZZ0530]Z”但为:“E[SY5654]Z”

看起来模拟没有注入(inject),或者模拟忽略了“何时”模拟语句。

这是测试:

@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测试的运行顺序造成的。例如,一个测试修改了一个对象的状态,但是直到测试以不同的顺序运行并且测试意外失败,您才看到它的效果。您发布的问题中没有足够的代码来判断是否确实如此,但我建议检查运行测试的顺序,并查看您使用的对象以确定是否存在这些对象的状态被“弄脏”的问题。

关于jenkins - Junit 测试在 Jenkins Gradle 构建中失败,但不是在本地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36745818/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com