我正在尝试自动化我的构建,并使我们的验收测试成为其中的一部分。
不幸的是,gradle任务connectedAndroidTest
正在报告
在Nexus_5X_API_25(AVD)上开始0测试 - 7.1.1
com.android.builder.testing.ConnectedDevice>未找到测试。[Nexus_5X_API_25(AVD) - 7.1.1]失败。
没有找到测试。这通常意味着您的测试类不是您的测试运行器期望的形式(例如,不从TestCase继承或缺少@Test注释)。
当我从IDE运行测试/套件时,这不会发生 我发现Android Studio正在执行以下命令:
$ adb push /path/to/apk/app-debug.apk /data/local/tmp/com.MyApp
$ adb shell pm install -r "/data/local/tmp/com.MyApp"
$ adb push /path/to/apk/app-debug-androidTest.apk /data/local/tmp/com.MyApp.test
$ adb shell pm install -r "/data/local/tmp/com.MyApp.test"
$ adb shell am instrument -w -r -e debug false -e class com.myapp.TestSuite com.MyApp.test/com.myapp.testrunners.CreationInterceptingTestRunner
我知道这些命令的作用但是我不知道connectedAndroidTest
在幕后做了什么,以及为什么它失败了。
我发现问题与multidex有关。在official page about enabling multidex的末尾,它显示为:
注意:
*不要使用不推荐使用的MultiDexTestRunner;请改用AndroidJUnitRunner *目前不支持使用multidex创建测试APK。
我不明白create test APK
的含义以及adb命令的工作原理
我不想手动运行adb命令,因为它们没有内置报告,我需要自己完成这些操作。
有没有办法将connectedAndroidTest
用于multidex应用程序?