Не удается разрешить ActivityTestRule после обновления зависимостей. Не удалось импортировать ActivityTestRule

Я написал инструментальные тесты, которые работали нормально, но теперь ошибка не может устранить ошибку ActivityTestRule после обновления зависимостей до

androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

Я использую версию поддержки Android 27.1.1.

Он отлично работает с зависимостями

androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

person Navjacinth Mathew    schedule 27.04.2018    source источник


Ответы (2)


В самом последнем обновлении библиотеки поддержки тестирования (24 апреля 2018 г.) зависимость «правила», по-видимому, была удалена из файла espresso-core. Я не уверен, почему это было сделано, но релиз примечания говорят об изменении следующее:

Исправлен файл POM эспрессо-ядра, чтобы он не извлекал зависимость «правила», вместо этого POM извлекал его из эспрессо-намерений. Это должно быть изменением NoOp для разработчиков, поскольку эспрессо-интенты нельзя использовать без эспрессо-ядра.

Вы можете решить эту проблему, добавив следующую зависимость к app/build.gradle:

androidTestImplementation 'com.android.support.test:rules:1.0.2'
person Rapunzel Van Winkle    schedule 27.04.2018
comment
Обратите внимание, что support.test:rules не является зависимостью Espresso. Теперь его можно использовать автономно. Также core предполагает минимальное влияние зависимостей, я не думаю, что на самом деле использовались какие-либо классы из rules. Больше контроля для нас, разработчиков. - person TWiStErRob; 17.08.2018

AndroidX Test включает другой API, ActivityScenario, который в настоящее время находится в стадии бета-тестирования. Этот API работает в различных средах тестирования и обеспечивает безопасность потоков в тестах, которые его используют. Попробуйте вместо этого использовать ActivityScenarioRule или ActivityScenario.

import androidx.test.ext.junit.rules.ActivityScenarioRule

ActivityScenarioRule(YourActivity::class.java)
person Bacar Pereira    schedule 26.07.2020