Jest TypeError:Path必须是一个字符串.收到undefined

Gib*_*boK 28 javascript babel webpack jestjs

我的package.json的设置如下

如果我从命令行运行npm test所有jest测试用例都正确执行.如果我直接从命令行使用命令jest,我收到此错误:

测试套件无法运行

TypeError: Path must be a string. Received undefined

  at assertPath (path.js:7:11)
  at Object.relative (path.js:538:5)
Run Code Online (Sandbox Code Playgroud)

这发生在任何测试文件上.

知道什么可能是错的,以及如何解决它?

 "scripts": {
        "test": "standard && jest",
        "format": "standard --fix",
        "start": "webpack-dev-server --config webpack.config.dev.js",
        "build": "webpack --config webpack.config.prod.js"
    },
Run Code Online (Sandbox Code Playgroud)

小智 19

我不完全确定这里的问题是什么,但我面临同样的问题,对我有用的是更新Jest版本.我正在使用20但是我切换到21,现在它再次神奇地工作.

更新版本package.json,然后运行rm -rf node_modules && npm install


Gib*_*boK 16

我解决了这个问题:

  • npm uninstall -g jest
  • npm install -g jest
  • npm缓存清理
  • npm安装


Rob*_*bin 13

在我的情况下,我不得不更新版本21.x版(从20.x).

试试跑步npm install jest@latest --save-dev.


Dom*_*cey 7

对我来说,这是jest-cli包撞到了21.x. 所以npm update jest-cli --save-dev