正在运行的Jest测试导致'TypeError:无法读取未定义的属性'Symbol(Symbol.toStringTag)'

Kan*_*tic 3 node.js travis-ci jestjs

我正在使用travis-ci部署我的开源项目。自从我的代码没有更改以来,自昨天以来,我所有的构建都无法运行单元测试,并出现下一个错误:

~/w/some-package ??? yarn test
yarn run v1.13.0
$ jest
 FAIL  test/unit/lib/sometest.js
  ? Test suite failed to run

    TypeError: Cannot assign to read only property 'Symbol(Symbol.toStringTag)' of object '#<process>'

      at _default (node_modules/jest-util/build/createProcessObject.js:85:34)
Run Code Online (Sandbox Code Playgroud)

我的构建配置使用最新的节点并仅运行测试

language: node_js
node_js:
 - node
script:
 - yarn test
Run Code Online (Sandbox Code Playgroud)

travis-ci机器的依存关系是否有变化?node和jest的版本之间有兼容性吗?

Kan*_*tic 6

这似乎11.11.0是最新稳定版本的节点与以前的jest版本之间的不兼容24.3.0

当前有2个解决方案:

  • 升级Jest(这将使用与节点11.11兼容的Jest版本)
yarn upgrade jest --latest
Run Code Online (Sandbox Code Playgroud)
  • .travis.yml中节点的引脚版本(这将确保travis使用的节点版本与较旧的玩笑版本兼容)
language: node_js
node_js:
 - "10.15.3"
script:
 - yarn test
Run Code Online (Sandbox Code Playgroud)