【发布时间】:2019-01-20 10:48:32
【问题描述】:
我有一个运行 express 的 node.js (v10.8.0) 应用程序,并且正在使用 mocha/chai 对其进行测试。我希望 mocha 在每次有文件更改时运行测试。
我的数据库(postgres)在 db.js 中是这样初始化的:
const pg = require('pg-promise')();
const db = pg('postgres://localhost:5432/myapp');
class DB {
createNewUser(data) {...
我的 package.json 文件如下所示:
"scripts": {
"test": "cross-env NODE_ENV=development mocha",
"dev": "cross-env NODE_ENV=development nodemon --exec babel-node src/index.js"
},
当我运行 npm test 时,我的测试通过了。但是如果我运行npm test -- --watch,它将运行第一个测试并通过,但在第一次更改时它将重新实例化数据库并产生以下错误:
WARNING: Creating a duplicate database object for the same connection.
at Object.<anonymous> (/Path/to/my/code/src/db.js:4:12)
at Module._compile (internal/modules/cjs/loader.js:689:30)
我能做些什么来解决这个问题?
【问题讨论】:
标签: node.js automated-tests mocha.js pg-promise