android - Firebase VDT 不运行 Gherkin (Cucumber) 测试

标签 android cucumber firebase-test-lab

我正在使用 VDT 运行集成测试。 我构建了这两个 APK,然后按照此处引用的教程发送它们:https://firebase.google.com/docs/test-lab/android/continuous对于比特币。

Firebase 成功运行了我的非 Cucumber 测试,但它只是忽略了 Cucumber 测试。

当我在我的设备上安装 APK 时,我看到所有测试都在运行。 我检查了一下,APK 中的 Runner 设置为 MultiDexCucumberJUnitRunner

为了了解 androidTest apk 中使用的运行程序,我这样做了:

  1. 安装我发送到 Firebase 的 APK
  2. 运行 adb shell pm list 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 Cucumber 版本似乎添加了对 Orchestrator 的支持 4.2.4 .您可以尝试从库中集成 CucumberAndroidJUnitRunner,而不是从 gist 中集成 MultiDexCucumberJUnitRunner

如果您的项目还不是 AndroidX,请将 androidx.test.runner.AndroidJUnitRunner 更改为 android.support.test.runner.AndroidJUnitRunner 它们应该具有相同的实现.

关于android - Firebase VDT 不运行 Gherkin (Cucumber) 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55042802/

相关文章:

以网络为数据源的Android ContentProvider

cucumber - 为 `Given` 和 `Then` 步骤定义相同的短语

android - Firebase 测试实验室 - 无权使用项目

android - 如何在测试前在 Firebase 测试实验室中执行 adb 命令

java - Android 上有没有办法检测触摸事件的来源?

java - 在 Android 蓝牙打印机中以泰米尔语打印

javascript - 定义两个级别的登录过程 Cucumber 测试场景

java - Selenium 测试因 java 失败

firebase - 访问 Firebase 测试实验室上虚拟设备的位置

java - 在所有 Activity 按钮上设置 setOnClickListener() 的简单方法