Skip to content

Commit cfa363e

Browse files
committed
Log instrumentation status before Android UI tests
1 parent 2441d89 commit cfa363e

File tree

1 file changed

+35
-1
lines changed

1 file changed

+35
-1
lines changed

scripts/build-android-app.sh

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -629,14 +629,48 @@ fi
629629

630630
"$ADB_BIN" -s "$EMULATOR_SERIAL" shell pm path android \
631631
| sed 's/^/[build-android-app] pm path android: /' || true
632+
INSTRUMENTATION_LIST="$("$ADB_BIN" -s "$EMULATOR_SERIAL" shell pm list instrumentation 2>/dev/null || true)"
633+
if [ -n "$INSTRUMENTATION_LIST" ]; then
634+
printf '%s\n' "$INSTRUMENTATION_LIST" | sed 's/^/[build-android-app] instrumentation: /'
635+
else
636+
ba_log "No instrumentation targets reported on $EMULATOR_SERIAL before installation"
637+
fi
638+
639+
PACKAGE_REGEX="${PACKAGE_NAME//./\\.}"
640+
PACKAGE_LIST="$("$ADB_BIN" -s "$EMULATOR_SERIAL" shell pm list packages 2>/dev/null || true)"
641+
if [ -n "$PACKAGE_LIST" ]; then
642+
PACKAGE_MATCHES="$(printf '%s\n' "$PACKAGE_LIST" | grep -E "${PACKAGE_REGEX}|${PACKAGE_REGEX}\\.test" || true)"
643+
if [ -n "$PACKAGE_MATCHES" ]; then
644+
printf '%s\n' "$PACKAGE_MATCHES" | sed 's/^/[build-android-app] package: /'
645+
else
646+
ba_log "Packages matching $PACKAGE_NAME not yet installed on $EMULATOR_SERIAL"
647+
fi
648+
else
649+
ba_log "Package manager returned no packages on $EMULATOR_SERIAL"
650+
fi
651+
652+
INSTRUMENTATION_TARGET="$(printf '%s\n' "$INSTRUMENTATION_LIST" | awk -F' ' '/instrumentation/{print $2}' | head -n1)"
653+
if [ -n "$INSTRUMENTATION_TARGET" ]; then
654+
"$ADB_BIN" -s "$EMULATOR_SERIAL" shell am instrument -w -r \
655+
-e log true \
656+
"$INSTRUMENTATION_TARGET" \
657+
2>&1 | sed 's/^/[build-android-app] am instrument: /'
658+
else
659+
ba_log "Skipping am instrument dry run; no instrumentation target detected on $EMULATOR_SERIAL"
660+
fi
632661

633662
UI_TEST_TIMEOUT_SECONDS="${UI_TEST_TIMEOUT_SECONDS:-900}"
634663
if ! [[ "$UI_TEST_TIMEOUT_SECONDS" =~ ^[0-9]+$ ]] || [ "$UI_TEST_TIMEOUT_SECONDS" -le 0 ]; then
635664
ba_log "Invalid UI_TEST_TIMEOUT_SECONDS=$UI_TEST_TIMEOUT_SECONDS provided; falling back to 900"
636665
UI_TEST_TIMEOUT_SECONDS=900
637666
fi
638667

639-
GRADLE_TEST_CMD=("./gradlew" "--no-daemon" "connectedDebugAndroidTest")
668+
GRADLE_TEST_CMD=(
669+
"./gradlew"
670+
"--no-daemon"
671+
"-Pandroid.testInstrumentationRunnerArguments=class=${PACKAGE_NAME}.${MAIN_NAME}UiTest"
672+
"connectedDebugAndroidTest"
673+
)
640674
if command -v timeout >/dev/null 2>&1; then
641675
ba_log "Running instrumentation UI tests with external timeout of ${UI_TEST_TIMEOUT_SECONDS}s"
642676
GRADLE_TEST_CMD=("timeout" "$UI_TEST_TIMEOUT_SECONDS" "${GRADLE_TEST_CMD[@]}")

0 commit comments

Comments
 (0)