Gradle (Milestone 8a) を使用して、IBM J9 JVM を使用してプロジェクトで JUnit テストを実行しています。「 JMockit でテストを実行する 」によれば、JVMに引数を渡す必要があります-javaagent:jmockit.jar
。ただし、JMockit はモックされたパラメーターを注入していないため、「メソッド (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}"
}
}
また、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.
やるべきことはすべてやったと確信しています。テストの実行に失敗するのはなぜですか?