Java JUnit平等性测试在Jenkins上突然开始失败,但在Maven或Eclipse中不是局部失败

Java JUnit平等性测试在Jenkins上突然开始失败,但在Maven或Eclipse中不是局部失败,java,maven,junit,jenkins,powermock,Java,Maven,Junit,Jenkins,Powermock,我有一个非常奇怪的例子,一个已经通过了几百次构建的测试开始失败,但只有在Jenkins站点上。它自创建以来未被修改。文件夹最近被移动了,但我不知道这会如何影响测试结果,而且没有其他测试开始失败 测试只是检查返回对象的相等性。基本上是这样的: traction[]traction=新轨迹[Trajectories.numTrajectories]; @以前 public void setup()引发异常{ 对于(int i=0;i

我有一个非常奇怪的例子,一个已经通过了几百次构建的测试开始失败,但只有在Jenkins站点上。它自创建以来未被修改。文件夹最近被移动了,但我不知道这会如何影响测试结果,而且没有其他测试开始失败

测试只是检查返回对象的相等性。基本上是这样的:

traction[]traction=新轨迹[Trajectories.numTrajectories];
@以前
public void setup()引发异常{
对于(int i=0;i
轨迹。create()
看起来像:

publicstaticvoidcreate(){
对于(int i=0;i
因此,当在
Trajectories.create()
中创建
轨迹
对象时,PowerMock会在其位置注入一个模拟。然后我们比较这个模拟是否正确返回

我甚至添加了一些日志记录来比较本地运行与Jenkins服务器上运行的输出与
System.out.println(traction[I]+”;“+Trajectories.get(I))
。在本地,一切都匹配:

Mock用于轨迹,hashCode:1327390425;轨迹模拟,哈希代码:1327390425
轨道模拟,哈希代码:1189682735;轨迹模拟,哈希代码:1189682735
...
但在詹金斯身上,我得到:

运行modelClasses.testtrajections
轨道模拟,哈希代码:1455537357;轨迹模拟,哈希代码:1230136122

测试运行:2,失败:1,错误:0,跳过:0,经过的时间:0.393秒
轨迹
是否覆盖了
等于
getHashCode
?@metacubed否,它没有。此测试类中有两个测试(测试运行:2),可能是第二个的副作用?您是否尝试在本地运行mvn clean cobertura:cobertura-Dcobertura.report.format=xml
@gontard是。这个特殊的测试确实成功实现了这个目标。不过,我通常不会在本地运行该目标,因为它会在以后给我带来内存不足的错误,最终我不得不退出^C(在使用
mvn clean test
时,不会看到这些错误,所以我认为Cobertura中存在错误)。