![](/img/trans.png)
[英]TypeScript Jest failing on TypeError: Class extends value undefined is not a constructor or null
[英]jest-mongodb error: TypeError: Class extends value undefined is not a constructor or null
我正在尝试使用express
在基本的mongodb
设置上jest
地运行测试。 按照jestjs.io 文档中的说明进行操作。 当我运行 may package.json
script: "test": "jest"
我收到以下错误:
TypeError: Class extends value undefined is not a constructor or null
at Object.<anonymous> (node_modules/@shelf/jest-mongodb/environment.js:20:49)
上面引用的environment.js
中的行是:
module.exports = class MongoEnvironment extends TestEnvironment {
所以TestEnvironment
class 是未定义的。 从其他堆栈讨论来看,似乎存在一些循环引用问题。 可能通过改变模块的运行顺序来解决,但我不知道该怎么做?
我试过更改我的节点版本,我也试过删除我的 node_modules 并重新安装。 当我运行yarn check
时,它告诉我所有的包都同步了。
package.json
:
...
"dependencies": {
"dotenv": "^16.0.1",
"express": "^4.18.1",
"mongodb": "^4.6.0"
},
"devDependencies": {
"@babel/core": "^7.18.2",
"@babel/preset-env": "^7.18.2",
"@babel/preset-typescript": "^7.17.12",
"@shelf/jest-mongodb": "^3.0.0",
"@types/express": "^4.17.13",
"@types/jest": "^27.5.1",
"@types/mongodb": "^4.0.7",
"@types/node": "^17.0.36",
"jest": "^28.1.0",
"jest-environment-node": "^27.0.0",
"ts-jest": "^28.0.3",
"ts-node-dev": "^2.0.0",
"typescript": "^4.7.2"
},
...
我能够通过以下方式解决它:
const NodeEnvironment = require('jest-environment-node')
到:
const NodeEnvironment = require('jest-environment-node').default
我通过更新摆脱了这个错误:
"jest-environment-node": "^27.0.0",
至
"jest-environment-node": "^28.1.0",
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.