我正在尝试将项目更新为Gradle 3.0.1 / gradle wrapper 4.1.当使用./gradlew testDebugUnitTest运行时,过去工作的Robolectric测试现在失败了:
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)
> com.android.tools.build:gradle:3.0.1
> org.robolectric.robolectric:3.5.1
>构建工具26.0.2
> gradle包装4.1
这是一个开源项目 – 更新的配置可用于here.
它似乎没有关联,但为了以防万一 – 我们也开始看到我们之前没有的pmd和lint错误.那些配置或版本没有改变.
我发现了以下可能相关的问题:
> https://github.com/robolectric/robolectric/issues/3333
> https://github.com/robolectric/robolectric/issues/3374
> Reference to findViewById() is ambiguous when running unit test
到目前为止,关于这些职位的任何建议都没有帮助.我已经阅读了gradle和robolectric的发行说明,但没有看到任何提示.知道哪个工具可能导致问题?还有什么别的我可以试试吗?
解决方法:
删除@Config(constants = BuildConfig.class,sdk = 21,manifest =“src / main / AndroidManifest.xml”,packageName =“org.odk.collect”)并在testOptions.unitTests.includeAndroidResources中添加true就可以了.全差异here.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。