Я давний Java-разработчик с многолетним опытом работы с Java EE, Ant, Maven, модульным тестированием, макетами и т. Д. В настоящее время я использую gradle для создания приложений для Android и смотрю на их модульное тестирование.И это заставляет меня рвать на себе волосы!
Мое чтение указывает на то, что для тестирования приложения необходимо создать в нем другое приложение в каталоге test.Но я не уверен, как это встроенное приложение может видеть основные классы приложений.Я предполагаю, что Google придумал это из-за чего-то общего с манифестами.Я не уверен, почему.
Без этой встроенной системы приложений я смог запустить модульные тесты, включив тестовые классы с основными классами в APK, добавив объявления инструментария вманифест, его развертывание и запуск бегунов.Но я не хочу компилировать тестовые классы с классами приложения и включать все зависимости, так что это не совсем вариант, и я не совсем уверен в последствиях изменений в манифесте, так как не могу найти никакой документации об эффектах.
Ничто из этого не понято gradle, который следует за системой построения maven.Также обратите внимание, что Android-способ, по-видимому, заключается в том, что встроенный подпроект (тест) зависит от основного родительского проекта, что совершенно противоположно gradle и maven.
Другой вариант - отдельный тестовый проект, так что он полностью находится вне проекта приложения.Но на самом деле, я бы хотел использовать соглашение, аналогичное maven, и просто иметь тесты в отдельном каталоге вместе с манифестом в ресурсах тестирования.
Кто-нибудь успел пройти тестирование на эмуляторах, выполняющих юнит-тесты послеболее maven как структура каталогов?