4

Gradle (Milestone 8a) を使用して、IBM J9 JVM を使用してプロジェクトで JUnit テストを実行しています。「 JMockit でテストを実行する 」によれば、JVMに引数を渡す必要があります-javaagent:jmockit.jar。ただし、JMockit はモックされたパラメーターを注入していないため、「メソッド (foo) にはパラメーターがありません)」でテストが失敗します。テストは、HotSpot JVM 上の Eclipse で正常に実行されます。

testJAR を見つけて次のように引数を追加する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.

やるべきことはすべてやったと確信しています。テストの実行に失敗するのはなぜですか?

4

1 に答える 1

3

これはhttp://issues.gradle.org/browse/GRADLE-2189で、今後の 1.0-rc-1 で既に修正されています。リリース候補版を今すぐ試すことができます。

于 2012-04-10T19:12:40.957 に答える