diff --git a/.github/workflows/build-client.yml b/.github/workflows/build-client.yml index 322c79c..97a6a39 100644 --- a/.github/workflows/build-client.yml +++ b/.github/workflows/build-client.yml @@ -47,20 +47,19 @@ jobs: run: make test # Enable hardware virtualisation - speeds up emulator - # TODO FixMe -# - name: Enable KVM -# run: | -# echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules -# sudo udevadm control --reload-rules -# sudo udevadm trigger --name-match=kvm -# -# - name: Integration Test -# uses: reactivecircus/android-emulator-runner@v2 -# with: -# api-level: 29 -# arch: x86_64 -# working-directory: ./client -# script: make integration-test + - name: Enable KVM + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + + - name: Integration Test + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: 29 + arch: x86_64 + working-directory: ./client + script: make integration-test - name: Decode Keystore if: inputs.publish diff --git a/client/Makefile b/client/Makefile index ef571a7..4287863 100644 --- a/client/Makefile +++ b/client/Makefile @@ -22,4 +22,13 @@ test: .PHONY: integration-test integration-test: - ./gradlew connectedDebugAndroidTest + #./gradlew connectedDebugAndroidTest -Pandroid.experimental.androidTest.useUnifiedTestPlatform=false --no-daemon --info + ./gradlew assembleDebug assembleDebugAndroidTest + adb install -t app/build/outputs/apk/debug/app-debug.apk + adb install -t app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk + #adb shell am instrument -w -e no-window true com.jackpf.locationhistory.client.test/androidx.test.runner.AndroidJUnitRunner + adb shell am instrument -w com.jackpf.locationhistory.client.test/androidx.test.runner.AndroidJUnitRunner \ + | tee /dev/tty \ + | grep -v "INSTRUMENTATION_STATUS" \ + | grep -q "OK (" + diff --git a/client/app/src/androidTest/java/com/jackpf/locationhistory/client/MainActivityTest.java b/client/app/src/androidTest/java/com/jackpf/locationhistory/client/MainActivityTest.java index 223493f..e6d0419 100644 --- a/client/app/src/androidTest/java/com/jackpf/locationhistory/client/MainActivityTest.java +++ b/client/app/src/androidTest/java/com/jackpf/locationhistory/client/MainActivityTest.java @@ -16,7 +16,7 @@ public class MainActivityTest { public void activityLaunches() { try (ActivityScenario scenario = ActivityScenario.launch(MainActivity.class)) { scenario.onActivity(activity -> - assertEquals(MainActivity.class, activity.getClass()) + assertEquals(MainActivity.class, activity.getClass()) ); } } @@ -27,4 +27,12 @@ public void activityReachesResumedState() { assertEquals(Lifecycle.State.RESUMED, scenario.getState()); } } + +// @Test +// public void activityReachesResumedStatef() { +// try (ActivityScenario scenario = ActivityScenario.launch(MainActivity.class)) { +// assertEquals(Lifecycle.State.RESUMED, scenario.getState()); +// assertEquals(1, 2); +// } +// } } diff --git a/client/gradle.properties b/client/gradle.properties index 20e2a01..de8b5e9 100644 --- a/client/gradle.properties +++ b/client/gradle.properties @@ -20,4 +20,8 @@ kotlin.code.style=official # Enables namespacing of each library's R class so that its R class includes only the # resources declared in the library itself and none from the library's dependencies, # thereby reducing the size of the R class for that library -android.nonTransitiveRClass=true \ No newline at end of file +android.nonTransitiveRClass=true +# Give ADB more time to connect (5 mins) +android.adbOptions.timeOutInMs=300000 +# Increase the UTP gRPC timeout +android.experimental.androidTest.numInstallationRetries=3 \ No newline at end of file