Jos*_*los 5 javascript postgresql node.js jestjs
我正在尝试在不获取数据的情况下测试与数据库的连接。为此,我制作了这个测试文件。
\n\nimport { PGConnection } from "../../../db";\n\ntest(\'two plus two is four\', () => {\n expect(2 + 2).toBe(4);\n});\n\ntest("Test connection to DDBB", () => {\n const db = new PGConnection();\n\n let result = db.test();\n expect(result).toBe("Connection to database has been established succesfully");\n\n\n});\nRun Code Online (Sandbox Code Playgroud)\n\n我有一个类,我在其中创建与数据库的连接:
\n\nimport Sequelize from "sequelize";\n//It\'s mandatory to import dotenv in each file where we can use enviroment variables\nimport config from "dotenv";\nconfig.config(); \n\n//console.log("Usuario DDBB: " + loader.FEB_CONNECTION_USER);\n\n\nclass PGConnection{\n constructor(){\n this.db = this.setConnection();\n }\n\n setConnection(){\n /*console.log("host: " + process.env.FEB_CONNECTION_HOST + "\\n" + \n "port: " + process.env.FEB_CONNECTION_PORT + "\\n" + \n "user: " + process.env.FEB_CONNECTION_USER + "\\n" +\n "password: " + process.env.FEB_CONNECTION_PASSWORD + "\\n" + \n "database: " + process.env.FEB_CONNECTION_DDBBNAME); */ \n return(\n new Sequelize(\n process.env.DDBB_NAME, \n process.env.DDBB_USER,\n process.env.DDBB_PSWD, {\n host: process.env.DDBB_HOST, \n port: process.env.DDBB_PORT,\n define: {\n freezeTableName: true, /**Don\'t add \'s to the end of each table/model */\n timestamps: false, /**Don\'t add fields createdAt and updatedAt */\n /* charset: \'utf8\',\n dialectOptions: {\n collate: \'utf8_general_ci\'\n }, */ \n },\n dialect: "postgres",\n //Remove operatorAliases due to an error when we update to sequelize 6.0.0\n //operatorsAliases: false,\n pool: {\n max: 5,\n min: 0,\n acquire: 30000,\n idle: 10000\n }\n }\n )\n );\n }\n\n async test(){\n try{\n console.log("host: " + process.env.FEB_CONNECTION_HOST + \n "port: " + process.env.FEB_CONNECTION_PORT + \n "user: " + process.env.FEB_CONNECTION_USER +\n "password: " + process.env.FEB_CONNECTION_PASSWORD + \n "database: " + process.env.FEB_CONNECTION_DDBBNAME)\n await this.db.authenticate();\n console.log("Connection to database has been established succesfully"); \n return ("Connection to database has been established succesfully");\n //this.closeConnection(); \n }catch (err){\n console.error("Unable to connect to database: " + err);\n return("Unable to connect to database: " + err);\n }\n } \n\n closeConnection(){\n this.db.close();\n console.log("Connection to database has been closed!!!")\n }\n}\n\nmodule.exports.PGConnection = PGConnection;\nRun Code Online (Sandbox Code Playgroud)\n\n这门课效果很好。但是,当我尝试进行测试时,出现此错误:
\n\n FAIL src/server/tests/test.spec.js\n \xe2\x97\x8f Test suite failed to run\n\n ReferenceError: regeneratorRuntime is not defined\n\n 65 | \n 66 | closeConnection(){\n > 67 | this.db.close();\n | ^\n 68 | console.log("Connection to database has been closed!!!")\n 69 | }\n 70 | }\nRun Code Online (Sandbox Code Playgroud)\n\n我的 package.json 是:
\n\n{\n "name": "",\n "version": "1.0.0",\n "description": "Code to build an API for projects, users and tasks",\n "main": "",\n "scripts": {\n "dev": "babel-node src/server/server.js",\n "test": "jest ./server/tests"\n },\n "author": "",\n "license": "ISC",\n "dependencies": {\n "cors": "^2.8.5",\n "dotenv": "^8.2.0",\n "express": "^4.17.1",\n "helmet": "^3.22.0",\n "morgan": "^1.10.0",\n "pg": "^8.2.1",\n "pg-hstore": "^2.3.3",\n "sequelize": "^5.21.11"\n },\n "devDependencies": {\n "@babel/cli": "^7.10.1",\n "@babel/core": "^7.10.2",\n "@babel/node": "^7.10.1",\n "@babel/polyfill": "^7.10.1",\n "@babel/preset-env": "^7.10.2",\n "babel-loader": "^8.1.0",\n "jest": "^26.0.1",\n "webpack": "^4.43.0"\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我究竟做错了什么?
\n我找到了解决该错误的解决方案。要修复它,您必须安装下一个插件:@babel/plugin-transform-runtime
npm install @babel/plugin-transform-runtime --save-dev
Run Code Online (Sandbox Code Playgroud)
另外,您必须在 .babelrc 文件中配置插件:
"env": {
"test": {
"plugins": ["@babel/plugin-transform-runtime"]
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6446 次 |
| 最近记录: |