Я собираюсь дать вам дешевый и веселый ответ сейчас. Может быть, кто-то еще сможет предоставить более полный.
Поскольку все тесты, как представляется, являются частью одного и того же набора источников, вам необходимо различать их другим способом. Наиболее подходящим решением является любой механизм, который есть в вашей тестовой библиотеке для группировки , который затем вы можете использовать из Gradle .
В качестве альтернативы используйте нечто вроде соглашения об именах, чтобы различать тесты пользовательского интерфейса и интеграционные тесты.
То, что вы делаете, зависит от того, как вы хотите, чтобы сборка работала с этими различными категориями. Основные опции включают в себя:
Использование тестовой фильтрации из командной строки - с помощью опции --tests
- для запуска только тестов интеграции или пользовательского интерфейса. Обратите внимание, что фильтрация работает только по имени класса, поэтому вам придется придерживаться подхода соглашения об именах.
Настройте соответствующую задачу Test
- это connectedAndroidTest
? - так что если вы установите конкретное свойство проекта, оно будет запускать либо интеграционные тесты, либо тесты пользовательского интерфейса на основе значения этого свойства проекта. Это предполагает использование условия if
в конфигурации. Этот подход работает как с фильтрацией, так и с группировкой.
Добавьте две дополнительные задачи Test
: одну, которая выполняет интеграционные тесты, и одну, которая выполняет тесты пользовательского интерфейса. Вы бы оставили connectedAndroidTest
нетронутым. Это мой предпочтительный подход, но требует немного больше кода, чем другие.
В этом ответе отсутствует много подробностей о том, как реализовать эти решения, но я боюсь, что заполнение этих подробностей занимает слишком много времени для меня сейчас. Как я уже сказал, надеюсь, кто-то придет с более полным ответом.