我正在使用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)
我的构建配置使用最新的节点并仅运行测试
language: node_js
node_js:
- node
script:
- yarn test
travis-ci机器的依存关系是否发生变化? node和jest的版本之间有什么兼容性吗?
答案 0 :(得分:6)
这似乎是最新稳定版本的节点11.11.0
与24.3.0
之前的jest版本之间的不兼容。
当前有2种解决方案:
yarn upgrade jest --latest
language: node_js
node_js:
- "10.15.3"
script:
- yarn test
答案 1 :(得分:1)
升级到jest 24.3.1
可解决此问题,因为该问题已在24.3.0版本中修复。
pre-24.3.x
版本与node 11.11.0
不兼容。
答案 2 :(得分:0)
另一种可能性是您在构造函数中添加了新服务,但忘记了将其添加到规范文件中。
我建议使用该服务所需的方法来创建一个模型:
const utilServiceMock = jasmine.createSpyObj('utilService', ['isNewFeatureEnabled']);
然后将其添加为提供者:
{ provide: UtilService, useValue: utilServiceMock},
最后注入它:
utilServiceSpy = TestBed.inject(UtilService);
(您可以将它们放入 beforeEach 触发器中的最后2个步骤)