JUnit 4在Gradle Scala单元测试中的错误'classMethod'测试

JUnit 4在Gradle Scala单元测试中的错误'classMethod'测试,scala,unit-testing,junit,gradle,junit4,Scala,Unit Testing,Junit,Gradle,Junit4,我对Gradle、JUnit和Scala测试执行有一个问题,在我们的测试中。最近,我们从Vert.x 2.1.RC1升级到2.1.RC2,我们开始看到在一些环境中,例如我们的Cloudbees实例,测试执行在一个测试类中查找一个名为classMethod的虚拟方法,该方法不存在,测试超时。结果,其余的测试都失败了 在本例中,您可以看到: org.vertx.scala.tests.core.http.HttpTest > classMethod FAILED java.lang.A

我对Gradle、JUnit和Scala测试执行有一个问题,在我们的测试中。最近,我们从Vert.x 2.1.RC1升级到2.1.RC2,我们开始看到在一些环境中,例如我们的Cloudbees实例,测试执行在一个测试类中查找一个名为
classMethod
的虚拟方法,该方法不存在,测试超时。结果,其余的测试都失败了

在本例中,您可以看到:

org.vertx.scala.tests.core.http.HttpTest > classMethod FAILED
    java.lang.AssertionError: Timed out waiting for test to complete
我们不知道这个
类方法是什么,它来自哪里…等等。更可怕的是,我无法在OSX和Linux(RHEL7)环境中复制它,无论是JDK1.7u45还是1.7u51

到目前为止,我们找到的唯一解决方法是恢复到Vert.x2.1.RC1(请参见RC1),但我们确实无法看到这与这个错误的
类方法之间的联系

我们已经尝试升级到Gradle 1.11,以防Gradle本身出现问题,但运气不佳。我们目前正在使用JUnit4.11

唯一一件看起来有点可疑的事情是,即使项目使用Scala 2.10.4,Gradle Scala插件似乎仍在运行。当我在本地清除我的
.gradle/
文件夹时,我没有看到任何Scala 2.9.2被下载。我想知道这是不是把事情搞砸了

最后,在最后一次运行中,我将
javap
输出与
classMethod
进行了比较,它们看起来是一样的

我没有主意了,有什么建议吗


更新:作为最后手段,我决定升级到Vert.x2.1.RC3-SNAPSHOT,仅此而已。我完全不知道为什么,但我认为:)

我见过这种行为是由于(意外地)在类路径上有相同库的两个不同版本造成的。另外,当一个特定的项目被打包成几个不同的jar时,其中一个jar的级别比其他jar低。

我也看到过类似的classMethod失败。这是什么?不知道,看起来是那个特定的发布jar出了问题。之后的任何其他快照都工作正常:|我们遇到了相同的错误消息。在我们的例子中,原因是我们的一个bug:一个Vert.x verticle从来没有响应过,所以测试永远被阻止,直到测试运行者杀死它。在我们的案例中,解决方案是修复错误。-在本地主机上运行时,该错误不会被触发——只有在Jenkins机器上运行时才会触发。