Не удается запустить тесты с Robolectric 4.0.1, «packageDebugUnitTestForUnitTest» завершается неудачно - PullRequest
0 голосов
/ 05 ноября 2018

Мои робоэлектрические тесты не работают после обновления до 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)
    }
}

У меня две отдельные проблемы:

  1. Если я запускаю тест, я получаю следующее сообщение:

FAILURE: сборка не удалась, исключение.

  • Что пошло не так: выполнение задачи не выполнено: «packageDebugUnitTestForUnitTest».

    Недопустимый символ в непрозрачной части в индексе 11: jar: file: C: \ myproject \ build \ middleates \ apk_for_local_test \ debugUnitTest \ packageDebugUnitTestForUnitTest \ apk-for-local-test.ap_

  1. Если я удаляю опцию testOptions.unitTests.includeAndroidResources = true из файла конфигурации gradle, я получаю следующую ошибку:

android.content.res.Resources $ NotFoundException: идентификатор ресурса # 0x7f030007

В строке val someItems = ApplicationProvider.getApplicationContext()...

Почему тесты работали с версией 3.6.1, а теперь нет?

1 Ответ

0 голосов
/ 14 ноября 2018

Удалить android.enableUnitTestBinaryResources=true из gradle.properties. Это помогает в моем случае.

Пожалуйста, обратитесь все комментарии по этому вопросу здесь

...