Detox - Android / iOS - 无法在 android 上运行相同的测试

Posted

技术标签:

【中文标题】Detox - Android / iOS - 无法在 android 上运行相同的测试【英文标题】:Detox - Android / iOS - Cannot run the same test on android 【发布时间】:2020-08-24 09:33:36 【问题描述】:

我一直在尝试查找将在下面发布的有关此错误的信息,我进行了所有配置并进行了研究,我正在使用所有内容的最新版本。 但由于我是 Detox 的新手,我假设为 ios 编写的测试适用于 android,如果是,请忽略并提供有关如何适应的详细信息。

基本上我得到的错误是这样的:

detox[40905] INFO:  [test.js] configuration="android.emu.debug" reportSpecs=true readOnlyEmu=false useCustomLogger=true forceAdbInstall=false DETOX_START_TIMESTAMP=1588961953280 node_modules/.bin/jest --config e2e/config.json '--testNamePattern=^((?!:ios:).)*$' --maxWorkers 1 "e2e"
detox[40909] INFO:  [DetoxServer.js] server listening on localhost:49577...
detox[40909] ERROR: [DetoxExportWrapper.js/DETOX_INIT_ERROR]
 DetoxRuntimeError: Failed to run application on the device

HINT: Most likely, your tests have timed out and called detox.cleanup() while it was waiting for "ready" message (over WebSocket) from the instrumentation process.
    at EmulatorDriver._getInstrumentationCrashError (/Users/brunosoko/Documents/appExam/node_modules/detox/src/devices/drivers/android/AndroidDriver.js:165:12)
    at EmulatorDriver.instrumentationCloseListener (/Users/brunosoko/Documents/appExam/node_modules/detox/src/devices/drivers/android/AndroidDriver.js:128:67)
    at EmulatorDriver._terminateInstrumentation (/Users/brunosoko/Documents/appExam/node_modules/detox/src/devices/drivers/android/AndroidDriver.js:156:12)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at ChildProcess.<anonymous> (/Users/brunosoko/Documents/appExam/node_modules/detox/src/devices/drivers/android/AndroidDriver.js:274:7) 
  name: 'DetoxRuntimeError'

detox[40909] INFO:  Example: should show login screen after tap on Sign in button

我不知道这是一个错误还是我做错了什么。

这是我的package.json

  "detox": 
    "specs": "",
    "configurations": 
      "ios.sim.debug": 
        "binaryPath": "/Users/brunosoko/Library/Developer/Xcode/DerivedData/AppExam-cwpqhbjlywwwihfaazprzmynvoym/Build/Products/Debug-iphonesimulator/appExam.app",
        "type": "ios.simulator",
        "name": "iPhone 11"
      ,
      "android.emu.debug": 
        "binaryPath": "/Users/brunosoko/Documents/AppExam/android/app/build/outputs/apk/debug/app-debug.apk",
        "type": "android.emulator",
        "name": "Pixel_3_API_R_2"
      
    ,
    "test-runner": "jest"
  ,

【问题讨论】:

这里要添加的另一个细节是,正如您所看到的,我将它用作黑盒测试工具,我没有应用程序的源代码与测试在同一个存储库中跨度> 能否提供模拟器设备的日志? 这是日志:gist.github.com/bmsoko/db1d13cb46ae9cf4aa9acc6632f6bc81 您的应用程序的包名是什么(例如 com.android.test)?另外,你能用最新的排毒重试吗?我们已经应用了一项与权限相关的重要修复,您的日志暗示了这一点。 对不起!我犯了一个巨大的错误!我没有正确设置 android 应用程序,之后我没有使用 ./gradlew assembleRelease assembleAndroidTest -DtestBuildType=debug 构建它!谢谢@d4vidi 【参考方案1】:

就我而言,问题是 DetoxTest.java 文件的路径错误。 '/com' 子目录丢失。包名:

de.dummy.example

应该是

android\app\src\androidTest\java\com\de\dummy\example

而不是:

android\app\src\androidTest\java\de\dummy\example

【讨论】:

以上是关于Detox - Android / iOS - 无法在 android 上运行相同的测试的主要内容,如果未能解决你的问题,请参考以下文章

我们可以在 Android 和 iOS 原生应用程序中使用 detox 工具吗? (不是反应本机)

是否可以在 ios/android 模拟器中使用 detox 添加 cookie?

Android Detox 的权限

使用 Detox 在 Android 上设置相机权限

在使用 Detox 运行测试期间,Android 模拟器无法启动应用程序

Detox android 测试引用了错误的 Android SDK 路径。 “目录中没有“aapt”可执行文件”