问题
I have a project that using Robolectric for unit test purpose. This project uses Robolectric 3.0 and need to add -ea
and -noverify
options in Virtual Machine options.
In Android Studio, I created new JUnit configuration in Run > Edit Configurations...
and then set VM Options
to -ea -noverify
. With this way I success to run my unit test. This is image about my configure, view Here
However, for continuous deployment, I need run unit test with command line. So I use ./gradlew test
to run unit test. I also add org.gradle.jvmargs=-ea -noverify
to gradle.properties
file. Unfortunately, it doesn't work. I can run unit test but I got java.lang.VerifyError
and I think that gradle.properties
was not load.
So, my question is, how to make gradle.properties
load or do you know any way to fix my vm options problem?
回答1:
It is already answered but this may be an easier solution:
In your application modules' build.gradle
file in android closure, add this.
android {
....
testOptions {
unitTests.all {
jvmArgs '-noverify'
}
}
}
回答2:
I found that we can add this block to app's build.gradle to solve this problem
tasks.whenTaskAdded { theTask ->
def taskName = theTask.name.toString()
if ("testDevDebug".toString().equals(taskName)) {
theTask.jvmArgs('-ea', '-noverify')
}
}
DevDebug
is my build variant.
回答3:
Maybe this
./gradlew -Dorg.gradle.jvmargs="-ea -noverify" test
来源:https://stackoverflow.com/questions/32315978/jvm-options-in-android-when-run-gradlew-test