我正在尝试在 Android 模拟器 (Genymotion) 上使用 Expo 设置 Detox,但我遇到了一个无法解决的错误....
我已经安装了必要的软件包:
在展会官方网站下载Exponent.apk
设置我的 package.json :
"detox": {
"test-runner": "jest",
"configurations": {
"android": {
"binaryPath": "bin/Exponent.apk",
"build": "npm run android",
"type": "android.attached",
"device": {
"adbName": "192.168.58.101:5555"
}
}
}
}
在 e2e 文件夹中设置 config.json :
{
"setupFilesAfterEnv": ["./init.ts"],
"testEnvironment": "node",
"reporters": ["detox/runners/jest/streamlineReporter"],
"verbose": true
}
设置我的 init.ts 文件:
import {cleanup, init} from "detox";
import * as adapter from "detox/runners/jest/adapter";
const config = require("../package.json").detox;
jest.setTimeout(120000);
jasmine.getEnv().addReporter(adapter);
beforeAll(async () => {
await init(config);
});
beforeEach(async () => {
await adapter.beforeEach();
});
afterAll(async () => {
await adapter.afterAll();
await cleanup();
});
当我使用
detox test
运行测试时,出现以下错误:
错误:'.../androidTest/Exponent/Exponent-androidTest.apk' 无法 被发现了,你运行了'./gradlew assembleAndroidTest'吗?
这个 androidTest 文件是如何用 Expo 生成的? 我是不是做错了什么?
编辑:
我还尝试使用 .sh 脚本来获取 Exponent.apk 文件:
#!/bin/bash -e
# query expo.io to find most recent ipaUrl
IPA_URL=`curl https://expo.io/--/api/v2/versions | python -c 'import sys, json; print json.load(sys.stdin)["androidUrl"]'`
# download tar.gz
TMP_PATH=bin/Exponent.apk
wget -O $TMP_PATH $IPA_URL
随着时间的推移,排毒很难设置/维护。
使用我的 React Native 应用程序,我已迁移到 https://maestro.mobile.dev/,它的工作方式就像一个魅力。
如果可能的话你应该尝试一下:)
尝试通过
清理gradle文件cd 安卓
./gradlew 干净
然后像这样重新运行应用程序:
cd ..
npm 启动