android - 排毒构建成功但排毒测试失败

标签 android detox

按照 Detox 在 adding Android 上提供的设置进行操作,下面构建排毒的命令工作正常,没有问题

detox build -c android.emu.debug

现在对 Package.json 文件进行设置,我确信目录提供正确

"android.emu.debug": {
  "binaryPath": "../OUR-APP-NAME/app/build/outputs/apk/androidTest/dev/debug/app-dev-debug-androidTest.apk",
  "build": "cd ../OUR-APP-NAME/ && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug && cd ../OUR-APP-NAME-TESTS",
  "type": "android.emulator",
  "name": "Pixel_2_XL_API_26"
},

出于某种原因,运行排毒测试不起作用

 detox test -c android.emu.debug

它抛出错误信息

Error: '/Users/z/Projects/company-projects/OUR-APP-NAME/app/build/outputs/apk/androidTest/androidTest/devDebug/androidTest/app-dev-debug-androidTest-androidTest.apk' could not be found, did you run './gradlew assembleAndroidTest' ?

...... 

detox[29702] ERROR: [cli.js] Error: Command failed: node_modules/.bin/mocha --opts e2e/mocha.opts --configuration android.emu.debug --loglevel verbose --grep :ios: --invert --artifacts-location "artifacts/android.emu.debug.2019-11-20 09-54-23Z" "e2e"

我注意到在第一条错误消息中,Detox 提供的目录是错误的,所以我尝试了以下操作

  • 创建了一个包含 APK 的目录
  • Package.json 文件的 binaryPath 上的目录更改为另一个目录
  • 直接在 Android Studio 中运行 assembleAndroidTestassembleDebug gradle 步骤

但无济于事,我无法让它发挥作用,我现在迷路了。

注意事项: - 我正在为原生 Android 应用程序运行 Detox - 我们的 Detox 设置适用于我们的原生 iOS 应用程序 - 我们正在使用 Detox 14.4.1

最佳答案

Detox 在 binaryPath 中“自定义”APK 名称,因此如果您指定 Detox 二进制文件的确切路径,它将不起作用。

(这种文件名突变发生在 Detox 的内部 getTestApkPath 函数中,对我来说似乎很不直观)。

要指定 APK Detox 应使用的确切路径,您可以使用 testBinaryPath 覆盖 binaryPath 中的设置。

编辑:澄清一下,Detox 需要访问两个 APK 文件,应用 APK 和测试 APK。 binaryPath 应指向应用 APK(您在模拟器上运行的正常应用),如果 Detox 无法根据 binaryPath 找到您的测试 APK,则 testBinaryPath 应指向您的测试 APK。

关于android - 排毒构建成功但排毒测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58951816/

相关文章:

android - android内核编译错误

android - 如何以及使用什么来制作这个组件

javascript - 排毒引用错误: before is not defined

react-native - 是否真的可以通过与 Expo 一起运行的 React Native 应用程序通过 Detox/Jest 测试?

javascript - 仅排毒测试启动画面

react-native - 排毒:向应用程序发送参数的最佳方式

java - 如何在 Android 上向微调器添加条件

android - 有没有办法在android中显示一个全局对话框?

android - 将基于 Material 的对话框主题与 AppCompat 一起使用

react-native - 如何在 Detox 中控制 React-Native webview?