在 Android 上使用 Expo 设置 Detox

问题描述 投票:0回答:2

我正在尝试在 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
android react-native expo detox
2个回答
0
投票

随着时间的推移,排毒很难设置/维护。

使用我的 React Native 应用程序,我已迁移到 https://maestro.mobile.dev/,它的工作方式就像一个魅力。

如果可能的话你应该尝试一下:)


-1
投票

尝试通过

清理gradle文件

cd 安卓
./gradlew 干净

然后像这样重新运行应用程序:

cd ..
npm 启动

© www.soinside.com 2019 - 2024. All rights reserved.