junit - 如何在 IBM J9 JVM 上将 JMockit 与 Gradle 一起使用?

标签 junit gradle jmockit

我正在使用 Gradle (Milestone 8a) 通过 IBM J9 JVM 在我的项目上运行 JUnit 测试,根据“Running tests with JMockit”要求我传递参数 -javaagent:jmockit.jar到JVM。但是,JMockit 没有注入(inject)模拟参数,这导致我的测试失败并显示“方法(foo)应该没有参数)”。测试在 HotSpot JVM 上的 Eclipse 中运行良好。

我已扩展 test查找 JAR 并将参数添加到 jvmArgs 的任务像这样:

test {
   doFirst {
     // Don't do this until the task is actually being executed, because 
     // as soon as we call testCompile.find the configuration is resolved and 
     // can't be modified anymore.
     jMockit = project.configurations.testCompile.find {
       it.name.startsWith("jmockit-")
     }
     jvmArgs "-javaagent:${jMockit}"
   }
}

我还在 testCompile 中添加了 JMockit 和 JUnit。配置,确保首先使用 JMockit,并通过运行 gradle dependencies 验证这一点:
dependencies {
  testCompile 'com.googlecode.jmockit:jmockit:0.999.13'
  testCompile 'junit:junit:4.10'
}
gradle check --debug 的输出确认 -javaagent正在使用的参数:
12:44:14.788 [DEBUG] [org.gradle.process.internal.ProcessBuilderFactory] creating process builder for Gradle Worker 1
12:44:14.788 [DEBUG] [org.gradle.process.internal.ProcessBuilderFactory] in directory /home/bbobby/webapp
12:44:14.788 [DEBUG] [org.gradle.process.internal.ProcessBuilderFactory] with argument#0 = -javaagent:/home/bbobby/.gradle/caches/artifacts-8/filestore/com.googlecode.jmockit/jmockit/0.999.13/jar/a6
ba457e09361f37e386edea176c5ce4fa9ee110/jmockit-0.999.13.jar
12:44:14.789 [DEBUG] [org.gradle.process.internal.ProcessBuilderFactory] with argument#1 = -ea
12:44:14.789 [DEBUG] [org.gradle.process.internal.ProcessBuilderFactory] with argument#2 = -cp
12:44:14.789 [DEBUG] [org.gradle.process.internal.ProcessBuilderFactory] with argument#3 = /home/bbobby/.gradle/caches/1.0-milestone-8a/workerMain/classes
12:44:14.789 [DEBUG] [org.gradle.process.internal.ProcessBuilderFactory] with argument#4 = org.gradle.process.internal.launcher.GradleWorkerMain
12:44:14.816 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Started Gradle Worker 1.

我很确定我已经做了我应该做的一切。为什么我的测试无法运行?

最佳答案

这是http://issues.gradle.org/browse/GRADLE-2189 ,这已经为即将到来的 1.0-rc-1 修复了。你可以试试release candidate今天。

关于junit - 如何在 IBM J9 JVM 上将 JMockit 与 Gradle 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10077414/

相关文章:

java - jUnit 和 DateFormat(EclEmma 代码覆盖率)

java - ID 为 'junit-jupiter' 的 TestEngine 未能发现测试 - 由 : org. junit.platform.commons.JUnitException 引起:ClassSelector 解析失败

grails - 如何使用Gradle在Grails脚本上删除目录中的文件

java - JMockit 无法模拟来自 JRE 的具体集合

java - Jmockit NullPointerException 与 Junit

java - 使用 jMockit 模拟 JDBC 的 Connection#prepareStatement 总是返回 null

spring - 在某个 Maven 配置文件构建期间是否可以排除或忽略 junit 测试?

java - Junit testing in play with java.lang.OutOfMemoryError 已被捕获,Java 堆空间

java - gradle 上构建错误 : cannot find symbol

android - 应用程序的多个版本:带有和不带有AD