如何将args传递给使用gradle运行测试的jvm

问题描述 投票:4回答:1

我是一个关于gradle的新手,我不确定gradle在运行测试集时是否会启动新的jvm。像Passing jvm arguments to Gradle test task 一样,我想将一些参数传递给运行测试集的jvm。我在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']
    }
}
...

但它告诉我:

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. 

我谷歌这个错误,但未能解决它。

java gradle
1个回答
4
投票

尝试设置封闭的jvmArgs任务的test,而不是尝试在groovy上设置它们。

你得到的错误表明jvmArgs不存在groovy

例:

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

这只是一个猜测,因为我没有一个便于确认的gradle设置,但值得一试,因为jvmArgs被记录为test的属性:

https://docs.gradle.org/current/dsl/org.gradle.api.tasks.testing.Test.html#org.gradle.api.tasks.testing.Test:jvmArgs

© www.soinside.com 2019 - 2024. All rights reserved.