Junit 如何在IBMJ9JVM上将JMockit与Gradle一起使用?

Junit 如何在IBMJ9JVM上将JMockit与Gradle一起使用?,junit,gradle,jmockit,Junit,Gradle,Jmockit,我正在使用Gradle(里程碑8a)在我的项目上使用IBMJ9JVM运行JUnit测试,根据“”要求我将参数-javaagent:jmockit.jar传递给JVM。然而,JMockit并没有注入模拟参数,这会导致我的测试因“方法(foo)应该没有参数”而失败。测试在Eclipse中热点JVM上运行良好 我扩展了test任务以查找JAR并将参数添加到jvmArgs中,如下所示: test { doFirst { // Don't do this until the task is

我正在使用Gradle(里程碑8a)在我的项目上使用IBMJ9JVM运行JUnit测试,根据“”要求我将参数
-javaagent:jmockit.jar
传递给JVM。然而,JMockit并没有注入模拟参数,这会导致我的测试因“方法(foo)应该没有参数”而失败。测试在Eclipse中热点JVM上运行良好

我扩展了
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}"
   }
}
我还将JMockit和JUnit添加到
testCompile
配置中,确保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.

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

这是一个问题,在即将推出的1.0-rc-1中已经修复了这个问题。你可以今天就试试。

是的,就是这样。期待RC1的发布!不确定这是否是因为gradle版本,但我必须在jMockit前面添加
def
。i、 e.
def jMockit=configurations.testCompile.find