тест Android из командной строки -> класс не найден

1

Я пытаюсь запустить свои тесты Android из командной строки следующим образом:

./gradlew -Pandroid.testInstrumentationRunnerArguments.class=com.my-app.MyAndroidTestClass connectedDebugAndroidTest

Когда я выполняю это в терминале, я получаю сообщение, что сборка не удалась, и эта трассировка стека в отчете:

java.lang.ClassNotFoundException: com.my-app.MyAndroidTestClass
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:453)
at androidx.test.internal.runner.TestLoader.doCreateRunner(TestLoader.java:72)
at androidx.test.internal.runner.TestLoader.getRunnersFor(TestLoader.java:104)
at androidx.test.internal.runner.TestRequestBuilder.build(TestRequestBuilder.java:789)
at androidx.test.runner.AndroidJUnitRunner.buildRequest(AndroidJUnitRunner.java:543)
at androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:386)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2145)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.my-app.MyAndroidTestClass" on path: DexPathList[[zip file "/system/framework/android.test.mock.jar", zip file "/system/framework/android.test.runner.jar", zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/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-kp71fIx71z7ZeJUg==/base.apk!/lib/x86, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
... 8 more

Странно то, что я могу запустить тестовый класс из Android Studio.
Что мне не хватает?

Теги:
android-gradle

1 ответ

0

Все цели сборки, включая тестирование, определены как задачи в системе сборки gradle. Получить список задач с помощью команды.

./gradlew tasks

Затем запустите конкретную задачу с помощью команды

./gradlew task-name

Для вашего теста запустите эту команду

./gradlew connectedDebugAndroidTest
  • 0
    Но это запустит все мои контрольно-измерительные приборы, верно? Вот почему я -Pandroid.testInstrumentationRunnerArguments.class=com.my-app.MyAndroidTestClass . Я предполагал, что это установит приложение, включающее этот класс. Это работает, если я запускаю тест из AndroidStudio, поэтому я полностью потерян.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню