运行“排毒测试”时找不到模块@ jest / reporters

时间:2019-06-17 00:03:15

标签: javascript react-native jestjs detox

在我的React Native项目中进行Detox设置时遇到了一些麻烦。 我的项目配置如下:

MacOS版本:10.14.14 Xcode 10.2.1 命令行工具:版本10.2.1

package.json:

{
  "name": "AppName",
  "version": "0.1.0",
  "private": true,
  "devDependencies": {
    "babel-preset-react-native-stage-0": "^1.0.1",
    "detox": "^12.11.0",
    "jest": "^23.6.0",
    "jest-react-native": "^18.0.0",
    "mocha": "^6.1.4",
    "react-test-renderer": "16.3.1"
  },
  "scripts": {
    "start": "react-native start",
    "android": "react-native run-android",
    "ios": "react-native run-ios",
    "devtools": "react-devtools --port 8091",
    "test": "jest"
  },
  "jest": {
    "preset": "react-native"
  },
  "dependencies": {
    "jail-monkey": "^2.1.1",
    "react": "16.3.1",
    "react-devtools": "^3.2.3",
    "react-native": "~0.55.2",
    "react-native-camera": "1.1.4",
    "react-native-device-info": "^0.22.5",
    "react-native-fs": "^2.13.3",
    "react-native-image-resizer": "^1.0.0",
    "react-native-mail": "^3.0.7",
    "react-native-maps": "^0.21.0",
    "react-native-permissions": "^1.1.1",
    "react-native-signature-capture": "^0.4.9",
    "react-native-sortable-list": "0.0.22",
    "react-native-sound": "^0.10.12",
    "react-native-splash-screen": "^3.1.1",
    "react-native-sqlcipher-storage": "github:axsy-dev/react-native-sqlcipher-storage",
    "react-native-swipe-gestures": "^1.0.2",
    "react-native-swipeout": "^2.3.6",
    "react-navigation": "^2.2.4",
    "react-redux": "^5.0.7",
    "redux": "^4.0.0",
    "redux-thunk": "^2.2.0",
    "rn-fetch-blob": "^0.10.15"
  },
  "rnpm": {
    "assets": [
      "./src/assets/fonts"
    ]
  },
  "detox": {
    "configurations": {
      "ios.sim.debug": {
        "binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/ProntoPOD.app",
        "build": "xcodebuild -workspace ios/ProntoPOD.xcworkspace -scheme ProntoPOD -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build",
        "type": "ios.simulator",
        "name": "iPhone XR"
      }
    },
    "test-runner": "jest"
  }
}

最初,按照《安装指南》中的说明安装Jest和Detox之后出现以下错误:

  

构建系统信息   错误:多个命令产生“:”   1)目标'double-conversion'(项目'React')从'/Users/cbrobbel/ProntoProjects/prontopod/ProntoPOD/node_modules/react-native/third-party/double-conversion-1.1.5/src/ bignum-dtoa.h'到'/Users/cbrobbel/ProntoProjects/prontopod/ProntoPOD/ios/build/Build/Products/Debug-iphonesimulator/include/double-conversion/bignum-dtoa.h'   2)目标'double-conversion-tvOS'(项目'React')具有来自'/Users/cbrobbel/ProntoProjects/prontopod/ProntoPOD/node_modules/react-native/third-party/double-conversion-1.1.5/的复制命令src / bignum-dtoa.h'到'/Users/cbrobbel/ProntoProjects/prontopod/ProntoPOD/ios/build/Build/Products/Debug-iphonesimulator/include/double-conversion/bignum-dtoa.h'

     

构建系统信息   错误:多个命令产生“:”   1)目标'double-conversion'(项目'React'):Libtool /Users/cbrobbel/ProntoProjects/prontopod/ProntoPOD/ios/build/Build/Products/Debug-iphonesimulator/libdouble-conversion.a normal x86_64   2)目标“ double-conversion-tvOS”(项目“ React”):Libtool /Users/cbrobbel/ProntoProjects/prontopod/ProntoPOD/ios/build/Build/Products/Debug-iphonesimulator/libdouble-conversion.a normal x86_64      

**生成失败**

     

detox [64617]错误:[cli.js]错误:命令失败:xcodebuild -workspace ios / ProntoPOD.xcworkspace -scheme ProntoPOD -configuration调试-sdk iphonesimulator -derivedDataPath ios / build

此问题已解决,方法是将XCode中的生成系统更改为“工作区设置”下的“传统生成”。现在出现以下错误,我不确定如何解决:

  

错误:将报告程序添加到路径“ /Users/cbrobbel/ProntoProjects/prontopod/ProntoPOD/node_modules/detox/runners/jest/streamlineReporter.js”时发生错误。找不到模块“ @ jest / reporters”       在reports.forEach(/Users/cbrobbel/ProntoProjects/prontopod/ProntoPOD/node_modules/jest/node_modules/jest-cli/build/TestScheduler.js:510:15)中       在Array.forEach()       在TestScheduler._addCustomReporters(/Users/cbrobbel/ProntoProjects/prontopod/ProntoPOD/node_modules/jest/node_modules/jest-cli/build/TestScheduler.js:497:15)       在TestScheduler._setupReporters(/Users/cbrobbel/ProntoProjects/prontopod/ProntoPOD/node_modules/jest/node_modules/jest-cli/build/TestScheduler.js:466:12)中       在新的TestScheduler上(/Users/cbrobbel/ProntoProjects/prontopod/ProntoPOD/node_modules/jest/node_modules/jest-cli/build/TestScheduler.js:193:10)       在/Users/cbrobbel/ProntoProjects/prontopod/ProntoPOD/node_modules/jest/node_modules/jest-cli/build/runJest.js:452:27       在Generator.next()       在步骤(/Users/cbrobbel/ProntoProjects/prontopod/ProntoPOD/node_modules/jest/node_modules/jest-cli/build/runJest.js:107:30)       在/Users/cbrobbel/ProntoProjects/prontopod/ProntoPOD/node_modules/jest/node_modules/jest-cli/build/runJest.js:118:15       在processTicksAndRejections(内部/进程/task_queues.js:86:5)   detox [64758]错误:[cli.js]错误:命令失败:node_modules / .bin / jest --config = e2e / config.json --maxWorkers = 1'--testNamePattern = ^((?!:android :) )* $'“ e2e”

任何帮助将不胜感激。 谢谢!

2 个答案:

答案 0 :(得分:1)

如果这是由于对等方依赖性引起的,您可以手动尝试max,因为在npm 3或更高版本中不会自动安装对等方依赖性。

答案 1 :(得分:0)

尝试运行

npm install @jest/reporters 
npm install