Задача Gradle только для выполнения uiTests - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть этот Android со стандартными Gradle-задачами.В Android-проекте есть пакет androidTest, содержащий integrationTests и uiTests.У меня также есть два класса Kotlin, содержащих набор тестовых классов.

Однако, ./gradlew connectedAndroidTest работает как integrationTests, так и uiTests, я хочу разделить это.Я предложил несколько решений:

  1. Конфигурации запуска Android Studio.Однако это не проверяется в VCS, поэтому у нас нет доступа к нашему серверу сборки Jenkins.
  2. Добавьте задачи Gradle на языке Groovy, однако не рекомендуется вызывать другую задачу gradle в новой задаче.

Поэтому я ищу способ проверить только integrationTests или uiTests.Как я могу это сделать?

1 Ответ

0 голосов
/ 25 апреля 2018

Я собираюсь дать вам дешевый и веселый ответ сейчас. Может быть, кто-то еще сможет предоставить более полный.

Поскольку все тесты, как представляется, являются частью одного и того же набора источников, вам необходимо различать их другим способом. Наиболее подходящим решением является любой механизм, который есть в вашей тестовой библиотеке для группировки , который затем вы можете использовать из Gradle .

В качестве альтернативы используйте нечто вроде соглашения об именах, чтобы различать тесты пользовательского интерфейса и интеграционные тесты.

То, что вы делаете, зависит от того, как вы хотите, чтобы сборка работала с этими различными категориями. Основные опции включают в себя:

  1. Использование тестовой фильтрации из командной строки - с помощью опции --tests - для запуска только тестов интеграции или пользовательского интерфейса. Обратите внимание, что фильтрация работает только по имени класса, поэтому вам придется придерживаться подхода соглашения об именах.

  2. Настройте соответствующую задачу Test - это connectedAndroidTest? - так что если вы установите конкретное свойство проекта, оно будет запускать либо интеграционные тесты, либо тесты пользовательского интерфейса на основе значения этого свойства проекта. Это предполагает использование условия if в конфигурации. Этот подход работает как с фильтрацией, так и с группировкой.

  3. Добавьте две дополнительные задачи Test: одну, которая выполняет интеграционные тесты, и одну, которая выполняет тесты пользовательского интерфейса. Вы бы оставили connectedAndroidTest нетронутым. Это мой предпочтительный подход, но требует немного больше кода, чем другие.

В этом ответе отсутствует много подробностей о том, как реализовать эти решения, но я боюсь, что заполнение этих подробностей занимает слишком много времени для меня сейчас. Как я уже сказал, надеюсь, кто-то придет с более полным ответом.

...