升级到Robolectric 4.0.1后,我的robolectric测试无法正常工作。
在我的gradle配置中,我使用的是testOptions.unitTests.includeAndroidResources = true
和gradle.properties android.enableUnitTestBinaryResources=true
。
这是一个虚拟测试,用作示例:
@RunWith(RobolectricTestRunner::class)
internal class MyRobolectricTests
{
@Test
fun my_test()
{
val someItems = ApplicationProvider.getApplicationContext().resources.getStringArray(R.array.array_of_strings)
assertEquals(10, someItems.size)
}
}
我遇到了两个不同的问题:
FAILURE:构建因异常而失败。
- 出了什么问题:任务执行失败':packageDebugUnitTestForUnitTest'。 索引11的不透明部分中的非法字符:jar:file:C:\ myproject \ build \ intermediates \ apk_for_local_test \ debugUnitTest \ packageDebugUnitTestForUnitTest \ apk-for-local-test.ap_
testOptions.unitTests.includeAndroidResources = true
选项,那么我收到以下错误:android.content.res.Resources $ NotFoundException:资源ID#0x7f030007
在线val someItems = ApplicationProvider.getApplicationContext()...
为什么测试适用于3.6.1版,但现在却没有?
从gradle.properties中删除android.enableUnitTestBinaryResources=true
。这有助于我的情况。
请参阅有关此问题的所有评论here