排毒失败并显示“找不到模块 'jest-cli/build/cli/args'”

Posted

技术标签:

【中文标题】排毒失败并显示“找不到模块 \'jest-cli/build/cli/args\'”【英文标题】:Detox fails with "Cannot find module 'jest-cli/build/cli/args'"排毒失败并显示“找不到模块 'jest-cli/build/cli/args'” 【发布时间】:2020-12-27 21:17:33 【问题描述】:

我们的 CI 构建最近开始失败,出现如下错误:

detox test -c android.emu.release
detox[3061] ERROR: [cli.js] Error:
Cannot find module 'jest-cli/build/cli/args'

本地detox test -c android.emu.release 成功。知道有什么问题吗?

【问题讨论】:

【参考方案1】:

UPD:⚠️⚠️⚠️ 最近的 Detox 版本 since 17.5.2 和更新版本不需要以下解决方法。 ⚠️⚠️⚠️

对于 17.4.7 和 17.5.1 之间的版本,以下文本在历史上有效。

如果您看到如下错误:

Cannot find module 'jest-cli/build/cli/args'

您应该将jest-cli 添加到您的package.jsondevDependencies 并重新运行npm install,例如:

 "devDependencies": 
   "jest": "26.x.x",
+  "jest-cli": "26.x.x",

如果您使用的是已弃用的jest (25.x) 版本,仍要确保您的jest-cli 版本匹配 jest 的版本:

 "devDependencies": 
   "jest": "^25.5.4",
+  "jest-cli": "^25.5.4",

P。 S. 关于为什么会这样。虽然detox@17.4.7 并不意味着包含任何重大更改,但由于另一种安装方法(通过lerna bootstrap 而不是原版npm install),这个问题已经超过了测试生命周期。与lerna 不同,当前版本的npm 会将jest-cli 放入node_modules/jest/node_modules/jest-cli,这就是Detox 无法找到的原因,尽管detox 包本身在清单中标记为jest-cli 包peerDependency,并打印相关警告:

npm WARN detox@17.4.7 requires a peer of jest-cli@>=25.0.0 but none is installed. You must install peer dependencies yourself.

【讨论】:

以上是关于排毒失败并显示“找不到模块 'jest-cli/build/cli/args'”的主要内容,如果未能解决你的问题,请参考以下文章

排毒测试 + React Native + PouchDB 应用程序:由于一些 PouchDB 同步,我们的登录测试一直失败并超时?

排毒构建成功,但排毒测试失败

在纱线安装期间构建排毒失败

使用 react-navigation 和 react-native-fluid-transitions 进行排毒 e2e 测试 - 期望 .toBeVisible 失败

排毒测试在运行测试之前挂起并重新加载应用程序几次,如何调试?

Detox IOS - 由于连续动画错误导致测试失败,disableSynchronization 不起作用