Android Espresso: почему мои тесты не проходят в многомодульном проекте?

Я начал разбивать свой одномодульный проект на множество модулей. Перед этим мои тесты прошли. Но теперь у меня ошибка:

androidx.test.espresso.NoMatchingViewException: не найдено ни одного представления в иерархии, совпадающего: (отображается на экране для пользователя и с идентификатором: com.ecwid.android:id/some_id)

Я переместил некоторые базовые пользовательские представления в «общий» модуль, который используется совместно со всеми другими модулями, и все эти представления в тестах не проходят без совпадения идентификаторов. У меня есть модуль «приложения», в котором есть все мои тесты. Может быть, я плохо написал свои зависимости в gradle? Это как:

androidTestImplementation project(':general')

Также во все модули были добавлены зависимости Espresso.


person Iliya Mashin    schedule 18.04.2020    source источник
comment
Трудно помочь вам, основываясь на этом описании. Может быть, вы могли бы предоставить еще немного кода? Если вы сможете извлечь какой-нибудь минимальный вариант использования для тестируемого теста, макета и действия/фрагмента, мы сможем помочь вам лучше.   -  person ferini    schedule 21.04.2020
comment
@ferini хорошо, я отредактирую это позже, у меня мало времени   -  person Iliya Mashin    schedule 21.04.2020
comment
Общий совет: в большинстве тестов Android следует использовать @UiThreadTest и пропускать onView() DSL. Тесты должны относиться к объектам представления как к объектам; не запускать в отдельном потоке без причины.   -  person Phlip    schedule 22.04.2020
comment
Вы можете просмотреть пример теста Espresso в этом репозитории: github.com/android/app-bundle-samples.   -  person aldok    schedule 17.06.2021


Ответы (1)


Разве это не должно быть testImplementation вместо androidTestImplementation?

person NeDimom Vam    schedule 21.04.2020