Android 使用gradle运行UI自动化测试,无需卸载

Android 使用gradle运行UI自动化测试,无需卸载,android,gradle,android-uiautomator,Android,Gradle,Android Uiautomator,当我在androidstudio中运行插装测试时,我看到该应用程序随后仍保留在设备上。但我不知道如何在命令行中使用gradlew实现这一点。我的目的是运行测试,将截图保存在/data/data/MyApp/cache/screenshots中,然后使用adb pull下载这些截图 ./gradlew connectedAndroidTest 导致卸载应用程序。我也试过了 ./gradlew connectedAndroidTest -x uninstallAndroidTest 但那没什么区

当我在androidstudio中运行插装测试时,我看到该应用程序随后仍保留在设备上。但我不知道如何在命令行中使用gradlew实现这一点。我的目的是运行测试,将截图保存在/data/data/MyApp/cache/screenshots中,然后使用
adb pull
下载这些截图

./gradlew connectedAndroidTest
导致卸载应用程序。我也试过了

./gradlew connectedAndroidTest -x uninstallAndroidTest

但那没什么区别。导致卸载的原因是什么?我如何避免它?

我解决了这个问题,让gradle只构建apk,然后与adb一起处理安装/测试/卸载工作。这是我的脚本的近似值

PKGNAME=com.corp.app ./gradlew assembleAndroidTest adb install -r app/build/outputs/apk/app-debug.apk adb install -r app/build/outputs/apk/app-debug-androidTest-unaligned.apk adb shell am instrument -w ${PKGNAME}.test/android.support.test.runner.AndroidJUnitRunner [ -d screenshots ] || mkdir screenshots adb pull /data/data/${PKGNAME}/cache/screenshots screenshots # Now we can uninstall. adb uninstall ${PKGNAME}.test adb uninstall ${PKGNAME} PKGNAME=com.corp.app ./gradlew组装式机器人测试 adb安装-r app/build/outputs/apk/app-debug.apk adb安装-r app/build/outputs/apk/app-debug-androidTest-unaligned.apk adb shell am instrument-w${PKGNAME}.test/android.support.test.runner.AndroidJUnitRunner [-d截图]| | mkdir截图 adb pull/data/data/${PKGNAME}/cache/screenshots屏幕截图 #现在我们可以卸载了。 adb卸载${PKGNAME}.test adb卸载${PKGNAME}
我没有找到解决这个问题的办法。看起来没有卸载就无法运行检测测试。您可以使用gradle命令构建和安装应用程序和testApp。使用这些Commamd是一种更好的方式,因为应用程序将安装在所有连接的设备上

gradlew installVersionDebug
gradlew installVersionDebugAndroidTest
adb shell am instrument -w -r -e debug false -e class com.example.android.EspressoUITest {PKGNAME}.test/android.support.test.runner.AndroidJUnitRunner

但报告仍然存在一个问题。您可以使用自定义testRunner生成JUnit样式的XML报告。这种报告可以用通用的方法转换成HTML格式。

如何从这次执行中收集报告?我从上午10:30一直工作到第二天凌晨1点,试图从手机上截图。当我读到这篇文章时,它起了作用,我想吻你!多年后,这仍然是一个痛苦的世界。是否有人真的希望测试批卸载应用程序(并丢弃其数据和设置?)?