按照 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 中运行
assembleAndroidTest
和assembleDebug
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/