Как запустить пользовательский скрипт mysql для приложения Laravel в тестовом конвейере в CodeShip Basic?

Относительный новичок в PhpUnit и тестировании в целом. Мы не используем миграции в нашем проекте, но есть пара скриптов, которые мне нужно запустить, чтобы настроить базу данных для тестирования. Как я могу запускать сценарии mysql из проекта в тестовом конвейере? Мне также нужно создать новую базу данных с определенным именем перед запуском этих сценариев.

Спасибо!


person QuietSeditionist    schedule 29.07.2019    source источник


Ответы (2)


Команды, которые вы используете на своем локальном компьютере, — это те же самые команды, которые вы можете запускать в CodeShip Basic. CodeShip Basic — это просто машина сборки с Ubuntu Bionic, и она будет выполнять команды настройки, тестирования и развертывания, как если бы вы вводили каждую строку в свой CLI. :)

У нас также есть документация по mysql: https://documentation.codeship.com/basic/databases/mysql/

person Michelle    schedule 30.07.2019
comment
Привет @Michelle, и спасибо за ваш вклад. К сожалению, эта ссылка довольно ограничена. Пара дополнительных вопросов: как использовать переменные среды в тестовом сценарии? Мне нужно предпринять следующие шаги: 1) создать нового пользователя, который требуется для моего сценария, 2) создать новую схему, 3) дать разрешения пользователю, созданному на шаге 1, 4) запустить собственный сценарий для создания схемы и значения по умолчанию. данные - person QuietSeditionist; 31.07.2019

Хорошо, после некоторого копания я узнал, как все это сделать. Ниже приведен сценарий, который я использовал для тестирования с новой схемой mysql, созданной для конкретного пользователя из сценария sql. Надеюсь, это поможет кому-то в будущем.

mysql -u $MYSQL_USER -p$MYSQL_PASSWORD -e "CREATE USER 'myuser'@'%' IDENTIFIED BY 'testpassword';"
mysql -u $MYSQL_USER -p$MYSQL_PASSWORD -e "CREATE SCHEMA myschemaname;"
mysql -u $MYSQL_USER -p$MYSQL_PASSWORD -e "GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'testpassword';"
mysql -u $MYSQL_USER -p$MYSQL_PASSWORD myschemaname < ./app/Ship/Migrations/1of2-schema.sql
mysql -u $MYSQL_USER -p$MYSQL_PASSWORD myschemaname < ./app/Ship/Migrations/2of2-seed.sql
php artisan passport:install
./vendor/bin/phpunit

$MYSQL_USER и $MYSQL_PASSWORD заменены на Codeship — это переменные env для пользователя и пароль для mysql, который существует в контейнере сборки.

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

person QuietSeditionist    schedule 01.08.2019