在mongo和Heroku上使用单独的测试mongo数据库

时间:2018-12-14 23:19:44

标签: mongodb express heroku

在我的项目中,我使用https://www.npmjs.com/package/dotenv-safe来声明配置所需的环境变量。例如:

NODE_ENV=development
JWT_SECRET=xxxxxxx
JWT_EXPIRATION_MINUTES=15
MONGO_URI=mongodb://mongodb:27017/proddb
BASE_URI=http://localhost:3000/
MONGO_URI_TESTS=mongodb://mongodb:27017/testdb
PORT=3000

然后我在配置文件中使用这些文件:

module.exports = {
  env: process.env.NODE_ENV,
  port: process.env.PORT,
  jwtSecret: process.env.JWT_SECRET,
  jwtExpirationInterval: process.env.JWT_EXPIRATION_MINUTES,
  mongo: {
    uri: process.env.NODE_ENV === 'test'
      ? process.env.MONGO_URI_TESTS
      : process.env.MONGO_URI,
  },
  logs: process.env.NODE_ENV === 'production' ? 'combined' : 'dev',
};

在我的package.json文件中,我得到了:

   "scripts": {
        "start": "NODE_ENV=production node ./src/index.js",
        "dev": "LOG_LEVEL=debug nodemon --inspect=0.0.0.0 ./src/index.js",
        "test": "NODE_ENV=test nyc --reporter=html --reporter=text mocha --timeout 20000 --recursive src/tests"
    }

有问题吗?一切正常,但是当测试在Heroku(prod)上运行时,它们在主数据库上而不是在testdb上运行...

0 个答案:

没有答案