使用JUnit 4在Gradle Scala单元测试中进行神奇的`classMethod`测试

前端之家收集整理的这篇文章主要介绍了使用JUnit 4在Gradle Scala单元测试中进行神奇的`classMethod`测试前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在 Scala language extension for Vert.x中遇到了Gradle,JUnit和Scala测试执行的问题.最近我们从Vert.x 2.1.RC1升级到2.1.RC2,我们开始看到在某些环境中,例如我们的Cloudbees实例,测试执行看起来在测试类中使用一个名为classMethod的幻像方法,该方法不存在,并且测试超时.结果,其余的测试失败了.

在这个console实例中,您可以看到:

org.vertx.scala.tests.core.http.HttpTest > classMethod Failed
    java.lang.AssertionError: Timed out waiting for test to complete

我们不知道这个classMethod是什么,它来自哪里等等.更糟糕的是,我无法在我的OSX和Linux(RHEL7)环境中复制它,无论是使用JDK 1.7u45还是1.7u51.

到目前为止我们发现修复它的唯一方法是恢复到Vert.x 2.1.RC1(见RC00的console of run),但我们真的无法看到这个和这个神秘的classMethod之间的联系.

我们已经尝试升级到Gradle 1.11,以防Gradle本身出现问题,但没有运气.我们目前正在使用JUnit 4.11.

唯一看起来有点可疑的是,即使项目使用Scala 2.10.4,Gradle Scala插件似乎是bring in Zinc which appears to need Scala 2.9.2.当我在本地清除我的.gradle /文件夹时,我没有看到任何Scala 2.9.2被下载.我想知道这是不是搞乱了?

最后,对于HttpCompressionTest似乎有classMethod的最后一次运行,我将javap输出locallythe one in Cloudbees进行了比较,它们看起来完全相同.

我没有想法,有什么建议吗?

更新:作为最后的手段,我决定升级到Vert.x 2.1.RC3-SNAPSHOT,它全是back to normal.我完全不知道为什么,但我会接受它:)

解决方法

我已经看到这种行为(意外)在类路径上有两个不同版本的同一个库.此外,当某个特定项目打包为多个不同的JAR时,其中一个JAR与其他JAR相比处于低级别.

猜你在找的Java相关文章