我正在尝试将项目更新为Gradle 3.0.1 / gradle wrapper 4.1。过去运行的Robolectric测试现在在使用./gradlew testDebugUnitTest
:
android.content.res.Resources$NotFoundException: org.odk.collect.android:integer/google_play_services_version
at org.robolectric.android.internal.ParallelUniverse.setUpApplicationState(ParallelUniverse.java:72)
at org.robolectric.RobolectricTestRunner.beforeTest(RobolectricTestRunner.java:319)
at org.robolectric.internal.SandboxTestRunner$2.evaluate(SandboxTestRunner.java:220)
at org.robolectric.internal.SandboxTestRunner.runChild(SandboxTestRunner.java:108)
at org.robolectric.internal.SandboxTestRunner.runChild(SandboxTestRunner.java:35)
这是一个开源项目 - 更新的配置可用here。
它似乎没有关系,但为了以防万一 - 我们也开始看到我们之前没有发现的pmd
和lint
错误。那些配置或版本没有改变。
我发现了以下可能相关的问题:
到目前为止,这些帖子上没有任何建议有所帮助。我已经阅读了gradle和robolectric的发行说明,但没有看到任何提示。知道哪个工具可能导致问题?还有什么我可以尝试的吗?
答案 0 :(得分:6)
删除@Config(constants = BuildConfig.class, sdk = 21, manifest = "src/main/AndroidManifest.xml", packageName = "org.odk.collect")
并添加testOptions.unitTests.includeAndroidResources true
就可以了。完全差异here。