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