【发布时间】:2016-03-17 23:43:07
【问题描述】:
我有一个由 maven-surefire-plugin 执行测试的 maven 项目。我观察到并一直在处理的一个奇怪现象是在本地运行
mvn clean install
执行我的测试,生成成功的构建,0 次失败和 0 次错误。
现在,当我将此应用程序部署到 Jenkins 尝试构建的远程存储库时,我会收到各种随机的 EasyMock 错误,通常是这样的:
java.lang.IllegalStateException: 3 matchers expected, 4 recorded. at org.easymock.internal.ExpectedInvocation.createMissingMatchers
这是一个被继承的遗留应用程序,我们知道,如果没有明显错误地使用 EasyMock,其中许多测试都有缺陷,但我处于这样一种状态,即通过测试执行,我在本地成功构建,但在 Jenkins 中没有.
我知道这些测试的执行顺序无法保证,但我想知道如何自省 Jenkins 构建管道与本地的不同之处以帮助识别问题?
我能做些什么来强制以本地完成的方式执行测试吗?在这一点上,我只是简单地排除了许多麻烦的测试类,但似乎无论我看到多少次 Jenkins 失败,我要么修复问题,要么排除测试类,我只是发现它抱怨其他一些测试之前没有提到的类。
任何想法如何处理这种情况?
【问题讨论】:
标签: java maven unit-testing jenkins maven-surefire-plugin