android 中的 Jvm 选项 when 运行 gradlew test

Jvm options in android when run gradlew test

我有一个项目使用 Robolectric 进行单元测试。本项目使用Robolectric 3.0,需要在虚拟机选项中添加-ea-noverify选项。

在 Android Studio 中,我在 Run > Edit Configurations... 中创建了新的 JUnit 配置,然后将 VM Options 设置为 -ea -noverify。通过这种方式,我成功地 运行 我的单元测试。这是关于我的配置的图片,查看 Here

但是,对于持续部署,我需要 运行 使用命令行进行单元测试。所以我使用 ./gradlew test 到 运行 单元测试。我还将 org.gradle.jvmargs=-ea -noverify 添加到 gradle.properties 文件。不幸的是,它不起作用。我可以 运行 进行单元测试,但我得到了 java.lang.VerifyError,我认为 gradle.properties 没有加载。

所以,我的问题是,如何 gradle.properties 加载或者您知道解决我的 vm 选项问题的任何方法吗?

也许这个

 ./gradlew -Dorg.gradle.jvmargs="-ea -noverify" test

我发现我们可以将这个块添加到应用程序的 build.gradle 来解决这个问题

tasks.whenTaskAdded { theTask ->
    def taskName = theTask.name.toString()
    if ("testDevDebug".toString().equals(taskName)) {
        theTask.jvmArgs('-ea', '-noverify')
    }
}

DevDebug 是我的构建变体。

已经回答了,但这可能是一个更简单的解决方案:

在 android 闭包中的应用程序模块的 build.gradle 文件中,添加此内容。

android {
  ....

  testOptions {
    unitTests.all {
      jvmArgs '-noverify'
    }
  }
}