Установить URL базы данных postgres на travis-ci для тестирования приложения node.js - PullRequest
0 голосов
/ 01 октября 2018

Я написал несколько тестов для моего приложения node.js, и тесты выполняются локально с использованием тестовой базы данных Postgresql.

Когда я запускаю свой тестовый скрипт, npm run test, среда устанавливается на test и когда это происходит, строка подключения к базе данных устанавливается для тестовой базы данных, и мои запросы в приложении теперь выполняются в тестовой базе данных.Примерно так:

let connectionString;
if (process.env.NODE_ENV === 'test') {
  connectionString =`postgresql://${process.env.DB_USER}:${process.env.DB_PASS}@${process.env.DB_HOST}:${process.env.DB_PORT}/${process.env.TEST_DB_NAME}`;
} else {
  connectionString =`postgresql://${process.env.DB_USER}:${process.env.DB_PASS}@${process.env.DB_HOST}:${process.env.DB_PORT}/${process.env.DB_NAME}`;
}

Таким образом, мои тесты выполняются в тестовой базе данных.

На travis, однако, я знаю, что мне нужно будет дополнительно настроить свою собственную базу данных.В документации по travisCI я читал о том, как я могу настроить базу данных PostgreSQL здесь , но это не помогает мне, потому что, как я могу получить полный URL базы данных, как указано выше?На travisCI, что я должен использовать в качестве базы данных hostname или port и как мне установить это значение в моем коде?

Как установить строку подключения к базе данных и получить к ней доступ в своем коде?

Спасибо за любые идеи.

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Нашел это во время поиска того, как сделать то же самое, и это не ответило на мой вопрос, так что на случай, если кто-то еще столкнется с этим, я думаю, что я решил это.

нули и видответил на это, но, похоже, нигде в сети не написано, что на самом деле должно быть имя хоста или порт (может быть, я тупой, и это очевидно, но: shrug:)

Согласно документам psql:

По умолчанию используется значение переменной среды PGPORT или, если не установлено, значение порта, указанного во время компиляции, обычно 5432.

Итак, яПредполагаемый порт будет 5432 (вы, вероятно, могли бы просто использовать PGPORT в качестве своей переменной).

Также в других местах travis он говорит, что локальный хост будет связываться с 127.0.0.1 для других баз данных (например, mongo), поэтому яЯ тоже об этом догадался.

Документы Travis сообщают нам пользователя как postgres, а пароль пуст.

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

postgres://postgres@127.0.0.1:5432/testing_db

Я сделал это в настройках панели мониторинга Travis.

Удивительно, но все это сработало: tada:

Надеюсь, это поможет.

0 голосов
/ 01 октября 2018

Согласно документам, вы можете создать базу данных, используя before_script, например,

before_script:
  - psql -c "CREATE DATABASE testing_db;" -U postgres

, затем вы можете добавить свои учетные данные (вместе с именем базы данных и портом и т. Д.) В переменные среды travis, например:

travis encrypt DB_USER=TEST_DB_USER --add env.matrix

Подробнее о переменных окружения travis можно узнать здесь .Вы также можете добавить переменные окружения на панель мониторинга travis в настройках своего репозитория.

...