【发布时间】:2018-11-11 15:25:30
【问题描述】:
场景
我正在尝试使用 detox 为 react-native 项目测试一个 android 应用程序。 在 detox 之外的设备或模拟器上运行应用程序时,一切正常。
生成排毒构建后,当我运行排毒测试命令时,该应用程序已成功安装并在模拟器上打开。在测试中通过beforeEach 调用device.reloadReactNative 时,应用程序崩溃并出现以下错误。
我将测试文件和相应的详细 adb logcat 输出放在 gist here 中。
无论出于何种原因,AppRegistry.js 都没有被加载,否则模块应该是已知的(参见错误)。
总结一下:
- 在 detox (ios+android) 之外构建和应用执行工作
- detox 构建工作 (ios+android)
- 排毒测试适用于 ios
- 在 android 上运行 detox 测试时,调用
reloadReactNative后 AppRegistry 丢失。为什么?
环境
- react-native-cli: 1.3.0
- 反应原生:0.55.3
- react-native-navigation: 1.1.457
- 排毒服务器:7.0.0
- 排毒:7.3.7
- OSX:10.13.4
- XCode:9.2
命令
detox test --configuration android.emu.release --cleanup -l verbose
错误
INSTRUMENTATION_RESULT: longMsg=com.facebook.react.common.JavascriptException:模块 AppRegistry 不是注册的可调用模块(调用 运行应用程序)
Thrown here 因为AppRegistry 尚未注册到 MessageQueue 的模块列表。
【问题讨论】:
标签: react-native detox