作者:shinesmini | 来源:互联网 | 2023-06-14 14:37
我正在使用VDT运行集成测试.我构建了两个APK,然后我按照这里引用的教程发送它们:https:firebase.google.comdocsest-labandroidconti
我正在使用VDT运行集成测试.
我构建了两个APK,然后我按照这里引用的教程发送它们:https://firebase.google.com/docs/test-lab/android/continuous for Bitrise.
Firebase成功运行了我的非Cucumber测试,但它忽略了Cucumber测试.
当我在我的设备上安装APK时,我看到所有测试都在运行.
我检查了APK中的Runner并设置为MultiDexCucumberJUnitRunner.
要知道androidTest apk中使用的跑步者,我这样做了:
>安装我发送给Firebase的APK
>运行adb shell pm list instrumentation
然后我看到了这条线:
instrumentation:my.package.name.test / .MultiDexCucumberJUnitRunner(target = my.package.name)
这是我已经集成到应用程序中的MultiDexCucumberJUnitRunner:
https://gist.github.com/dhoskins/98afa6976c87cb20328d42065c7292ee
你知道我怎么调查测试没有运行的原因吗?你有这个问题吗?
编辑
现在我知道我可以让它关闭Orchestrator.有没有办法使用Orchestrator运行Cucumber测试?
当Orchestrator打开时,这是测试的结果:
INSTRUMENTATION_STATUS: numtests=1 INSTRUMENTATION_STATUS: stream= no
tests found: INSTRUMENTATION_STATUS: id=AndroidJUnitRunner
INSTRUMENTATION_STATUS: test= INSTRUMENTATION_STATUS: class=no tests
found INSTRUMENTATION_STATUS: current=1 INSTRUMENTATION_STATUS_CODE: 1
INSTRUMENTATION_STATUS: numtests=1 INSTRUMENTATION_STATUS: stream=
Error in no tests found: java.lang.ClassNotFoundException: Invalid
name: no tests found at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:400) 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
my.package.name..app4test.test.MultiDexCucumberJUnitRunner.onStart(MultiDexCucumberJUnitRunner.kt:25)
at
android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1932)
解决方法:
似乎为android黄瓜版本4.2.4添加了对Orchestrator的支持.您可以尝试从库中集成CucumberAndroidJUnitRunner而不是从gist中集成MultiDexCucumberJUnitRunner.
如果您的项目还不是AndroidX,请将androidx.test.runner.AndroidJUnitRunner更改为android.support.test.runner.AndroidJUnitRunner,它们应该具有相同的实现.