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> jvmArgsThe 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: