排毒失败并显示“找不到模块 '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.json
的devDependencies
并重新运行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 失败