当前位置: 首页 > 面试题库 >

如何将args传递给使用Gradle运行测试的JVM

劳高爽
2023-03-14
问题内容

我是Gradle新秀,我不确定Gradle在运行测试集时是否会启动新的JVM。

就像将JVM参数传递给Gradle测试任务一样,我想将一些参数传递给运行测试集的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.

我搜索了此错误,但未能解决。


问题答案:

尝试设置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

List<String> jvmArgs

用于启动进程的JVM的额外参数。不包括系统属性和最小/最大堆大小。

由于jvmArgs是String的列表,因此您可以向其传递多个参数,请参阅:

http://docs.groovy-lang.org/next/html/documentation/working-with-
collections.html#_list_literals

例:

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

对于“ -Dprop = value”系统属性,请改用systemPropertiestest任务:

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



 类似资料:
  • 我有一个应用程序使用JUL日志记录。我正在将它切换到Log4j2,而当使用Gradle运行jUnit测试时,日志记录的奇怪行为令我感到困惑。 示例简化示例:测试 log4j2.xml放在资源文件夹中: Build.Gradle 当我在Idea(使用Idea自己的测试运行器)或Eclipse中运行测试时,我会在控制台中打印以下内容: 当我从CLI使用Gradle运行它或使用Gradle runner

  • 问题内容: 目前,我有以下 build.gradle 文件: 这 的build.gradle 文件是我的仓库 在这里 。我所有的主文件都在 src / model /中 ,它们各自的测试在 test / model中 。 如何正确添加JUnit 4 依赖项 ,然后在 测试/模型 文件夹中运行那些测试? 问题答案: 如何正确添加junit 4依赖关系? 假设您要针对标准Maven(或等效版本)存储库

  • 当前我有以下build.gradle文件: 此build.gradle文件用于我的存储库。我的所有主文件都在src/model/中,它们各自的测试都在test/model中。

  • kotlintest测试从Intellij启动时运行得非常好,但当我尝试使用gradle test task命令运行它们时,只会找到并运行我的常规JUnit测试。 kotlintest代码: build.gradle:

  • 我必须向main方法传递两个参数。我的构建脚本是 如果我尝试: 然后发生了一个错误。 如何轻松地将参数传递到主方法命令行?

  • 我正在编写一个groovy脚本来执行/自动化我的测试套件。在一个测试案例中,我有一个HTTPRequest,其中我有一个请求URL、参数(用户名和密码)和方法(GET)来获取token-id,然后我会将该token id传递给下一步(SOAP请求)来获取数据。 我陷入了一个困境,需要使用groovy传递参数(用户名和密码)、请求URL和方法(GET)。我有一个在测试用例下人工创建的测试步骤,我只需