使用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输出locally与the one in Cloudbees进行了比较,它们看起来完全相同. 我没有想法,有什么建议吗? 更新:作为最后的手段,我决定升级到Vert.x 2.1.RC3-SNAPSHOT,它全是back to normal.我完全不知道为什么,但我会接受它:) 解决方法
我已经看到这种行为(意外)在类路径上有两个不同版本的同一个库.此外,当某个特定项目打包为多个不同的JAR时,其中一个JAR与其他JAR相比处于低级别.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |