Составление Jetpack: нет метода shouldWaitForActivitiesToComplete ()

Я нахожусь в состоянии, когда хочу написать androidTests для приложения.

Читая документы Testing Compose, я создал файл и напишите простой тест, чтобы проверить прогресс:


ExamineTest.kt:

class ExamineTest {

    @get:Rule
    val composeTestRule = createComposeRule()


    @Test
    fun atLaunchDefaultTextExists() {
        composeTestRule.setContent {
            Text(text = "text")
        }
        composeTestRule.onNodeWithText("text").assertIsDisplayed()
    }
}

Также я добавил отладку AndroidManifest в app/src/debug/, чтобы включить ComposeActivity, как это предлагается в документах.

Однако при запуске теста ничего не произойдет, и тест не начнет выполняться.

Вот состояние, при котором тест становится доступным (приложение создано и развернуто. Но не запущено для выполнения тестов. Нормальное выполнение приложения работает правильно):

показать пример зависания теста

Мне не хватает какой-то части настройки? В чем причина того, что тесты не запускаются?


compose: 1.0.0-alpha05 AS: 4.2-canary 14

Обновлять

После отладки теста и проверки его журналов я вижу эту ошибку:

No method shouldWaitForActivitiesToComplete() in 
androidx/test/runner/AndroidJUnitRunner 

person Mahdi-Malv    schedule 26.10.2020    source источник


Ответы (1)


Убедитесь, что test:monitor и test:core обновлены.

Проверяя эту проблему на github для Android-test, я понял, что проблема может быть в том, что test:monitor старше, чем необходимо. Итак, я сделал следующие шаги:

  1. Отметьте задачу Gradle app:dependencies, чтобы увидеть версию test:monitor библиотеки.

  2. Если он действительно старый (это был 1.2.0, а не последний 1.3.0), найдите библиотеку, которая понижает его версию.

    в моем случае fragment-testing понижал его до 1.2, поэтому я удалил его.

Убедившись, что test:monitor и test:core обновлены, я наконец смог запустить тест.

person Mahdi-Malv    schedule 29.10.2020