Как я могу выбрать определенный набор тестов c (не в одном пакете) для запуска в Android Studio? - PullRequest
0 голосов
/ 12 июля 2020

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

Мне не удалось найти c конкретных инструкций, как это сделать. Я нашел способ и подумал, что поделюсь им здесь, если кто-то найдет его полезным.

1 Ответ

1 голос
/ 12 июля 2020

Я решил проблему, создав аннотацию (может быть применен к классу тестирования или к методу тестирования) и установив фильтр средства выполнения теста для этой аннотации.

Определить аннотацию теста

/**
 * This annotation is used to mark tests for devices with a physical
 * keyboard (Chromebook).
 *  
 * The annotation can be applied to test classes, and to individual
 * tests.
 */
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface PhysicalKeyboardTest {
}

Use Test Annotation

@Test
@PhysicalKeyboardTest
public void enterKey_shouldWork() {
    ...
}

Run Configuration - Single Device

В диалоговом окне Run Configuration в разделе «Android Instrumentation Tests»

  • Сделайте копию конфигурации «Все Android тесты»
  • Переименуйте копию в «Физические тесты клавиатуры»
  • В «Аргументах инструментария»
    • Поле имени: аннотация
    • Поле значения: com. path-to-annotation-def .PhysicalKeyboardTest

Конфигурация запуска «Тесты физической клавиатуры» запустит все тесты с пометкой «@PhysicalKeyboardTest» в любом месте набора тестов.

Выполнить конфигурацию - Все подключенные устройства

В диалоговом окне «Выполнить конфигурацию» в разделе «Gradle»

  • Добавьте конфигурацию:
    • Имя: Физическое Тесты клавиатуры (все устройства)
    • Проект Gradle: выберите свое приложение
    • Задачи: connectedCheck
    • Аргументы: -P android .testInstrumentationRunnerArguments.annotation = com. path-to-your-annotation-def .PhysicalKeyboardTest

В конфигурации запуска «Тесты физической клавиатуры (все устройства)» будут выполняться все тесты с пометкой «@PhysicalKeyboardTest» в любом месте набора тестов на всех подключенных устройствах.

...