簡體   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