【发布时间】:2020-04-22 00:44:38
【问题描述】:
我正在尝试在 Android 模拟器 (Genymotion) 上使用 Expo 设置 Detox,但我遇到了一个无法通过的错误......
我已经安装了必要的软件包:
- 排毒
- detox-expo-helpers
- expo-detox-hook
在官方展会网站上下载 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
【问题讨论】:
-
嗨,您是否完全按照以下步骤操作:github.com/wix/Detox/blob/master/docs/Introduction.Android.md?
-
我正在使用expo,所以我没有gradle文件...
-
是的,错过了,您是否按照以下教程进行操作:blog.expo.io/…
-
它仅适用于 iOS 模拟器... :( 想在 android 模拟器上制作它
-
你真的跑了吗
detox build
标签: android react-native expo detox