Pi Vinci Pi Vinci - 6 months ago 37
Android Question

Jvm options in android when run gradlew test

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?

Answer

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.

Comments