我正在使用VDT进行集成测试。 我构建了两个APK,然后按照此处引用的教程发送它们:https://firebase.google.com/docs/test-lab/android/continuous for Bitrise。
Firebase成功运行了我的非Cucumber测试,但它只是忽略了Cucumber测试。
在设备上安装APK时,我看到所有测试都在运行。
我检查了一下,将APK中的“跑步者”设置为MultiDexCucumberJUnitRunner
。
要知道androidTest 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:流=否 找到的测试:INSTRUMENTATION_STATUS:id = AndroidJUnitRunner INSTRUMENTATION_STATUS:测试= INSTRUMENTATION_STATUS:类=无测试 找到的INSTRUMENTATION_STATUS:当前= 1 INSTRUMENTATION_STATUS_CODE:1 INSTRUMENTATION_STATUS:numtests = 1 INSTRUMENTATION_STATUS:stream = 未找到任何测试中的错误:java.lang.ClassNotFoundException:无效 名称:在java.lang.Class.classForName(本机方法)上未找到测试 在java.lang.Class.forName(Class.java:400)在 android.support.test.internal.runner.TestLoader.doCreateRunner(TestLoader.java:72) 在 android.support.test.internal.runner.TestLoader.getRunnersFor(TestLoader.java:104) 在 android.support.test.internal.runner.TestRequestBuilder.build(TestRequestBuilder.java:789) 在 android.support.test.runner.AndroidJUnitRunner.buildRequest(AndroidJUnitRunner.java:539) 在 android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:382) 在 my.package.name..app4test.test.MultiDexCucumberJUnitRunner.onStart(MultiDexCucumberJUnitRunner.kt:25) 在 android.app.Instrumentation $ InstrumentationThread.run(Instrumentation.java:1932)
答案 0 :(得分:4)
似乎已为Android Cucumber版本4.2.4添加了对Orchestrator的支持。您可以尝试从库中集成CucumberAndroidJUnitRunner
,而不是从主旨中集成MultiDexCucumberJUnitRunner
。
如果您的项目还不是AndroidX,请将androidx.test.runner.AndroidJUnitRunner
更改为android.support.test.runner.AndroidJUnitRunner
,它们应该具有相同的实现。