Мои робоэлектрические тесты не работают после обновления до Robolectric 4.0.1.
В моей конфигурации 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 \ middleates \ apk_for_local_test \ debugUnitTest \ packageDebugUnitTestForUnitTest \ apk-for-local-test.ap_
- Если я удаляю опцию
testOptions.unitTests.includeAndroidResources = true
из файла конфигурации gradle, я получаю следующую ошибку:
android.content.res.Resources $ NotFoundException: идентификатор ресурса
# 0x7f030007
В строке val someItems = ApplicationProvider.getApplicationContext()...
Почему тесты работали с версией 3.6.1, а теперь нет?