gradlew не обнаруживается при создании тестов приложений для Android в CircleCI
У меня есть проект Android, который я хотел бы построить и протестировать, развернув в CircleCI 2.0.
При выполнении сборки я получаю ошибку
*$#!bin/bash -eo pipefail
.gradlew androidDependencies
/bin/bash: ./gradlew: No such file or directory
Exited with Code 127*
version: 2
jobs:
build:
working_directory: ~/AndroidDemo
docker:
# Android the primary container
- image: circleci/android:api-25-alpha
environment:
JVM_OPTS: -Xmx3200m
steps:
- checkout
#- restore_cache:
# key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}
- run:
name: Download Dependencies
command: ./gradlew androidDependencies
# - save_cache:
# paths:
# - ~/.gradle
# key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }}
#- run:
# name: Run UnitTest
# command: ./gradlew testDemoDebugUnitTest
- run:
name: Setup emulator
command: sdkmanager "system-images;android-24;default;armeabi-v7a" && echo "no" | avdmanager create avd -n test -k "system-images;android-24;default;armeabi-v7a"
- run:
name: Launch emulator
command: export LD_LIBRARY_PATH=${ANDROID_HOME}/emulator/lib64:${ANDROID_HOME}/emulator/lib64/qt/lib && emulator64-arm -avd test -noaudio -no-boot-anim -no-window -accel auto -verbose
background: true
- run:
name: Wait emulator
command: |
# wait for it to have booted
circle-android wait-for-boot
# unlock the emulator screen
sleep 30
adb shell input keyevent 82
- run:
name: Run EspressoTests
command: ./gradlew connectedDemoDebugAndroidTest
- store_artifacts:
path: app/build/reports
destination: reports
- store_test_results:
path: app/build/test-results
Я установил рабочий каталог в моем файле config.yml
// AndroidDemo - это место, где находится мой проект
working_directory: ~/AndroidDemo
1 ответ
Я попытался рефакторинг файла конфигурации и перешел на Circle CI 2.0, так как 1.0 не поддерживается.
Файл circle.yml должен быть помещен в корневой каталог, который CircleCI должен клонировать.
разрешения должны быть предоставлены Gradlew.
chmod +x gradlew
в тесте: выполнить gradlew следующим образом:
./gradlew -Pandroid.testInstrumentationRunnerArguments.class=com.example.android_demo.MyTestsTestSuite connectedAndroidTest -PdisablePreDex
Это сработало для меня.