Использование отдельной тестовой базы данных mongo на mongo и 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 ...

Как вы настраивали Heroku для запуска тестов? Они запускаются перед запуском?

Mavi Domates 15.12.2018 00:33

На самом деле я не ... Я использую сценарий сборки по умолчанию, который они предоставляют без настроек, поэтому я предполагаю, что он запускает тест пряжи перед развертыванием ...

George Katsanos 15.12.2018 09:07

Думаю вот в чем дело: github.com/heroku/heroku-buildpack-nodejs/blob/master/bin/te‌ st

George Katsanos 15.12.2018 10:44

наверное в этом баг: github.com/heroku/heroku-buildpack-nodejs/issues/504

George Katsanos 15.12.2018 10:52
Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
0
4
83
0

Другие вопросы по теме