Запуск тестов phpunit базы данных на локальном образе докера и на конвейерах битбакета с той же конфигурацией xml

Я использую конвейеры докеров и битбакетов, и я запускаю тесты phpunit базы данных в локальном контейнере докеров и в конвейерах битбакетов. Это работает. В phpunit.xml.dist я указываю URL-адрес базы данных.

В локальном контейнере докера это: mysql: // user: password @ mysql-database: 3306 / database

Однако в конвейере битбакета: mysql: // user: password @ localhost: 3306 / database

Я не хочу менять phpunit.xml.dist каждый раз, поэтому вопрос в том, как я могу запустить оба на одном хосте (мне все равно, если это «localhost» или «mysql-database»)? Я попытался установить имя_контейнера в bitbucket-pipelines.yml, но это не сработало:

definitions:
  services:
    mysql:
      image: mysql:5.6
      container_name: mysql-database
      environment:
        MYSQL_DATABASE: 'database'
        MYSQL_ROOT_PASSWORD: 'root'
        MYSQL_USER: 'user'
        MYSQL_PASSWORD: 'password'


person dominikweber    schedule 23.02.2018    source источник


Ответы (2)


Конфигурация базы данных хоста должна обрабатываться config_test.yml, а не phpunit.xml.dist.

Если вы не можете определить пользовательские параметры в config_test.yml для битбакета, вы можете определить новую среду symfony (например: local_test), которая имеет собственное config_local_test.yml

person goto    schedule 23.02.2018
comment
Я использую symfony 4, и моя конфигурация находится в файле .env. Если я не добавлю URL-адрес базы данных в phpunit.xml.dist, мой тест базы данных завершится неудачно. - person dominikweber; 23.02.2018

Нашел решение: а) как упомянуто "goto": не устанавливайте учетные данные базы данных в phpunit.xml.dist б) мои учетные данные .env-файла были проигнорированы, поэтому мне пришлось установить переменные среды в настройках битбакета

person dominikweber    schedule 25.02.2018