React Native E2E w/Detox 错误:“无法在设备上运行应用程序”

Posted

技术标签:

【中文标题】React Native E2E w/Detox 错误:“无法在设备上运行应用程序”【英文标题】:React Native E2E w/ Detox error: "Failed to run application on the device" 【发布时间】:2020-09-24 02:28:59 【问题描述】:

我在 Mac 上使用 React Native CLI 创建了一个入门应用程序,添加了 Detox 并尝试运行示例测试。我收到此错误(为便于阅读添加了换行符):

$ ./node_modules/.bin/detox -c android test
detox[37289] INFO:  [test.js] configuration="android" reportSpecs=true readOnlyEmu=false 
    useCustomLogger=true forceAdbInstall=false DETOX_START_TIMESTAMP=1591313397594 
    node_modules/.bin/jest --config e2e/config.json '--testNamePattern=^((?!:ios:).)*$' -- 
    maxWorkers 1 android test
detox[37290] INFO:  [DetoxServer.js] server listening on localhost:62332...
detox[37290] 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.

当它运行时,模拟器会启动,但应用程序不会。

应用通过 React Native CLI 独立于 E2E 测试运行良好。

.detoxrc.json


  "testRunner": "jest",
  "runnerConfig": "e2e/config.json",
  "configurations": 
    "android": 
      "type": "android.emulator",
      "binaryPath": "android/app/build/outputs/apk/debug/app-debug.apk",
      "build": "cd android; ./gradlew assembleDebug assembleAndroidTest -DtestBiuldType=debug; cd -",
      "device": 
        "avdName": "Pixel_3"
      
    
  

环境:

Detox: 16.7.0
React Native: 0.62.2
Node: v12.17.0
Device: Pixel 3, x86, API 29, Android 10
OS: MacOS 10.15.4
Test-runner: Jest
Android Studio: 3.6.3

【问题讨论】:

【参考方案1】:

我的错。我错过了特定于 Android 的入门说明第二页上的几个步骤。

https://github.com/wix/Detox/blob/master/docs/Introduction.Android.md

【讨论】:

以上是关于React Native E2E w/Detox 错误:“无法在设备上运行应用程序”的主要内容,如果未能解决你的问题,请参考以下文章

使用 react-navigation 和 react-native-fluid-transitions 进行排毒 e2e 测试 - 期望 .toBeVisible 失败

在 e2e 测试中的某个点开始使用 Detox 在 react native

如何自动化测试 React Native 项目 (上篇) - 核心思想与E2E自动化

运行 npm test 时忽略 e2e 文件夹

React Native Detox - 运行特定的测试文件

排毒:使用停止按钮测试 React-Native 微调器