Возьмите за основу лекционный проект и дополните решениями заданий.
На лекции был реализован один тест на модельное приложение.
Ваша задача — добавить ещё два теста:
- тест на попытку установки пустой строки;
- тест на открытие текста в новой Activity.
Первый тест должен устанавливать в поле ввода пустой текст и осуществлять нажатие на кнопку изменения текста. После нужно проверить, что текст в TextView остался прежним.
Обратите внимание, что пустым также является текст, состоящий только из пробельных символов.
Второй тест должен устанавливать в поле ввода непустой текст и осуществлять нажатие на кнопку запуска новой Activity. Затем он должен дождаться появления Activity на экране и в качестве результата сравнить содержимое TextView с текстом, который был установлен в поле ввода.
Для определения ID у TextView, принадлежащего второй Activity, рекомендуем использовать инструмент UI Automator Viewer.
После выполнения первой задачи добавьте полученный код в репозиторий на GitHub. Второй задачей будет настройка инструмента GitHub Actions для этого репозитория.
Подробную инструкцию по настройке смотрите ниже.
Инструкция для GitHub Actions.
В вашем репозитории перейдите на вкладку Actions и нажмите на кнопку «Set up this workflow».
Появится окно добавления скрипта GitHub Actions в репозиторий. Имя этого скрипта можете сделать любым, главное — это его расширение, .yml
.
Содержимое файла замените скриптом:
name: Android CI
on:
push:
branches: '*'
pull_request:
branches: '*'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'adopt'
cache: gradle
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build
test:
runs-on: macos-13
steps:
- uses: actions/checkout@v3
- name: set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'adopt'
cache: gradle
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: run tests
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 29
script: ./gradlew connectedCheck
Скрипт сначала проверяет сборку вашего проекта через команду ./gradlew build
, а затем запускает виртуальную машину с macOS. На ней сначала запускается эмулятор Android, а затем выполняется запуск тестов UI Autimator. Это происходит с помощью специального плагина android-emulator-runner
.
Теперь после каждого коммита в репозиторий будет автоматически запускаться скрипт GitHub Actions, который автоматически будет проверять сборку проекта и корректность выполнения тестов.
После настройки дождитесь результата запуска тестов и убедитесь, что запуск был успешным.