首页 > 解决方案 > 在运行 e2e 测试之前如何不重建反应原生应用程序?

问题描述

我正在使用 detox 测试我的 RN 应用程序

我在这样的测试中有一个 Facebook 登录存根:

// js/actions/login.e2e.js

function fbAuth() {
  console.log('stubbed auth with Facebook');
}

module.exports = { fbAuth };

当我构建我的应用程序RN_SRC_EXT=e2e.js react-native run-android然后运行测试detox test -c android.emu.debug时,它使用带有存根的文件

当我构建我的应用程序react-native run-android然后运行测试时,它使用非存根版本(使用 Facebook 真正登录)

我的排毒配置如下

 "detox": {
    "configurations": {
      "android.emu.debug": {
        "binaryPath": "android/app/build/outputs/apk/debug/app-debug.apk",
        "build": "cd android && RN_SRC_EXT=e2e.js ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug && cd ..",
        "type": "android.emulator",
        "name": "Android_Accelerated_Nougat"
      }
    }
  }

问题是:如何配置 detox 以*e2e.js在测试中使用文件而不RN_SRC_EXT=e2e.js react-native run-android在开始测试之前运行?

我试过了

RN_SRC_EXT=e2e.js node_modules/.bin/mocha e2e --opts e2e/mocha.opts --configuration android.emu.debug --grep :ios: --invert

RN_SRC_EXT=e2e.js detox test -c android.emu.debug

但这没有帮助

更新:

实际上RN_SRC_EXT=e2e.js react-native run-android没有帮助:我需要停止我的 Metro 进程并运行RN_SRC_EXT=e2e.js react-native run-android以强制 RN 使用e2e.js测试包中的文件

标签: react-nativemockinge2e-testingstubbingdetox

解决方案


推荐阅读