来自命令行的android测试-->;找不到类

来自命令行的android测试-->;找不到类,android,android-gradle-plugin,Android,Android Gradle Plugin,我正在尝试从命令行运行android测试,如下所示: /gradlew-Pandroid.testinstrumentationrunnearguments.class=com.my-app.MyAndroidTestClass-connectedDebugAndroidTest 当我在终端中执行此操作时,我会收到生成未成功的消息以及报告中的堆栈跟踪: java.lang.ClassNotFoundException:com.my-app.MyAndroidTestClass 位于java.l

我正在尝试从命令行运行android测试,如下所示:

/gradlew-Pandroid.testinstrumentationrunnearguments.class=com.my-app.MyAndroidTestClass-connectedDebugAndroidTest
当我在终端中执行此操作时,我会收到生成未成功的消息以及报告中的堆栈跟踪:

java.lang.ClassNotFoundException:com.my-app.MyAndroidTestClass
位于java.lang.Class.classForName(本机方法)
位于java.lang.Class.forName(Class.java:453)
位于androidx.test.internal.runner.TestLoader.doCreateRunner(TestLoader.java:72)
位于androidx.test.internal.runner.TestLoader.getRunnersFor(TestLoader.java:104)
位于androidx.test.internal.runner.TestRequestBuilder.build(TestRequestBuilder.java:789)
位于androidx.test.runner.AndroidJUnitRunner.buildRequest(AndroidJUnitRunner.java:543)
位于androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:386)
位于android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2145)
原因:java.lang.ClassNotFoundException:在路径:DexPathList[[zip文件”/system/framework/android.test.mock.jar],zip文件“/system/framework/android.test.runner.jar”,zip文件“/system/framework/org.apache.http.legacy.boot.jar”,zip文件中找不到类“com.my app.MyAndroidTestClass”“/data/app/com.xxxxx.xxxxx.test-yNK7q-kp71fIx71z7ZeJUg==/base.apk”],nativeLibraryDirectories=[/data/app/com.xxxxx.xxxxx.test-yNK7q-kp71fIx71z7ZeJUg=/lib/x86,/data/app/com.xxxxx.xxxxx.test-yNK7q-k71fix71z7zejug==/base.apk!/lib/x86,/system/lib]]
位于dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:379)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:312)
…还有8个
奇怪的是,我可以从Android Studio运行测试类。

我缺少什么?

所有构建目标(包括测试)都定义为gradle构建系统中的任务。 使用命令获取任务列表

./gradlew tasks
然后使用命令运行特定的任务

./gradlew task-name
要进行测试,请运行此命令

./gradlew connectedDebugAndroidTest

所有构建目标(包括测试)都定义为gradle构建系统中的任务。 使用命令获取任务列表

./gradlew tasks
然后使用命令运行特定的任务

./gradlew task-name
要进行测试,请运行此命令

./gradlew connectedDebugAndroidTest

手动运行测试时,在Android Studio的构建和运行窗口中,我可以看到执行的Gradle任务和adb shell命令。

然后我只需将它们复制到我自己的bash脚本中。

手动运行测试时,在Android Studio的构建和运行窗口中,我可以看到执行的Gradle任务和adb shell命令。

然后我不得不将它们复制到我自己的bash脚本中。

但这将运行我所有的插装测试,对吗?这就是为什么我将
-Pandroid.testinstrumentationrunnearguments.class=com.my app.MyAndroidTestClass
放在那里的原因。我假设它会安装包含该类的应用程序。如果我从AndroidStudio运行测试,它会工作,所以我“我完全迷路了。但这将运行我所有的检测测试,对吗?这就是为什么我将
-Pandroid.testinstrumentationrunnearguments.class=com.my app.MyAndroidTestClass
放在那里的原因。我假设它会安装包括该类的应用程序。如果我从AndroidStudio运行测试,它会工作,所以我完全迷路了。”。