Как выполнить назначенный тест в Firebase Test Lab - PullRequest
0 голосов
/ 19 апреля 2019

Я хочу запустить один тест из одного набора тестов, используя gcloud firebase test android run, но не могу понять синтаксис.

Эта команда не выполнена:

gcloud firebase test android run \
--type instrumentation \
--project locuslabs-android-sdk \
--app app/build/outputs/apk/debug/app-debug.apk \
--test app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk \
--device model=Pixel2,version=27,locale=en_US,orientation=portrait \
--verbosity debug \
--test-targets "class com.example.firebasetestlabplayground.ExampleInstrumentedTest.test002"

Сообщение об ошибке:

java.lang.ClassNotFoundException: com.example.firebasetestlabplayground.ExampleInstrumentedTest.test002
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:453)
at android.support.test.internal.runner.TestLoader.doCreateRunner(TestLoader.java:72)
at android.support.test.internal.runner.TestLoader.getRunnersFor(TestLoader.java:104)
at android.support.test.internal.runner.TestRequestBuilder.build(TestRequestBuilder.java:789)
at android.support.test.runner.AndroidJUnitRunner.buildRequest(AndroidJUnitRunner.java:539)
at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:382)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2075)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.firebasetestlabplayground.ExampleInstrumentedTest.test002" on path: DexPathList[[zip file "/system/framework/android.test.runner.jar", zip file "/system/framework/android.test.mock.jar", zip file "/data/app/com.example.firebasetestlabplayground.test-F71g9fZiJ95s1aLuzIJRsw==/base.apk", zip file "/data/app/com.example.firebasetestlabplayground-EuQG5YDD3hrz6BPtBz2t6g==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.firebasetestlabplayground.test-F71g9fZiJ95s1aLuzIJRsw==/lib/x86, /data/app/com.example.firebasetestlabplayground-EuQG5YDD3hrz6BPtBz2t6g==/lib/x86, /system/lib, /system/vendor/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
... 8 more

В своем исследовании я столкнулся с Как выполнить назначенный класс комплекта тестов в Firebase Test Lab , который очень помог мне в этом, но в нем не указано, как выполнить один тест внутри Люкс

Кроме того, согласно https://github.com/piotrmadry/FirebaseTestLab-Android/issues/11, должна быть возможность выполнить одиночный тест с параметром --test-targets, но в документации не приводится пример для https://cloud.google.com/sdk/gcloud/reference/firebase/test/android/run#--test-targets.

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019

Майкл, этот синтаксис с использованием # задокументирован в справочнике по команде gcloud (или добавьте --help к вашей команде выше, чтобы получить документы из командной строки).Эта документация gcloud, в свою очередь, ссылается на полную документацию для AndroidJUnitRunner , которая также описывает полный синтаксис.

0 голосов
/ 19 апреля 2019

После проб и ошибок я обнаружил, что могу указать один тест, используя # вместо . между именем класса набора тестов и именем теста.

Эта команда успешно выполнила одиночный тест с именем test002 в com.example.firebasetestlabplayground.ExampleInstrumentedTest:

gcloud firebase test android run \
--type instrumentation \
--project locuslabs-android-sdk \
--app app/build/outputs/apk/debug/app-debug.apk \
--test app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk \
--device model=Pixel2,version=27,locale=en_US,orientation=portrait \
--verbosity debug \
--test-targets "class com.example.firebasetestlabplayground.ExampleInstrumentedTest#test002"
...