![](/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.