运行gradlew测试时android中的Jvm选项

时间:2015-08-31 16:40:36

标签: android unit-testing gradle android-gradle robolectric

我有一个使用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选项问题吗?

3 个答案:

答案 0 :(得分:26)

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

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

android {
  ....

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

答案 1 :(得分:7)

我发现我们可以将此块添加到app的build.gradle中以解决此问题

SELECT * FROM Sales.CurrencyRate
WHERE ToCurrencyCode='AUD' AND CurrencyRateDate='2005-07-01'

tasks.whenTaskAdded { theTask -> def taskName = theTask.name.toString() if ("testDevDebug".toString().equals(taskName)) { theTask.jvmArgs('-ea', '-noverify') } } 是我的构建版本。

答案 2 :(得分:0)

也许这个

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