How to pass args to JVM which runs tests with Gradle

I am a Gradle rookie and I am not sure whether Gradle will start the new JVM when it runs the test set.

Like Passing JVM arguments to Gradle test task I want to pass some parameters to the JVM running the test set.

I added the following lines to build.gradle:

...
test { groovy { jvmArgs '-agentpath:/usr/lib/code_dependency_capturer.so' // add line srcDirs = ['src/test'] if (!JavaVersion.current().isJava8Compatible()) { exclude '**/v8/*' exclude '**/vm8/*' } } resources { srcDirs = ['src/test-resources'] }
}
...

But it tells me:

A problem occurred evaluating root project 'groovy'.
Could not find method jvmArgs() for arguments[-agentpath:/usr/lib/code_dependency_capturer.so] on source set 'test' of type org.gradle.api.internal.tasks.DefaultSourceSet. 

I googled this error but failed to solve it.

1 Answer

Try setting the jvmArgs of the enclosing test task rather than trying to set them on groovy.

The error you are getting suggests that jvmArgs isn’t present on groovy.

Example:

...
test { jvmArgs '-agentpath:/usr/lib/code_dependency_capturer.so' // add line groovy { srcDirs = ['src/test'] ... } ...
}

This is just a guess as I don’t have a gradle setup handy on which to confirm but worth a try as jvmArgs is documented as a property for test:

List<String> jvmArgs

The extra arguments to use to launch the JVM for the process. Does not include system properties and the minimum/maximum heap size.

Since jvmArgs is a list of String you can pass it multiple arguments, refer to:

Example:

 jvmArgs ["-Xarg1", "-Xarg2"]

For "-Dprop=value" system properties use the systemProperties of the test task instead:

6

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like