繁体   English   中英

jest-mongodb 错误: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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM