Использование кипариса с Django в Gitlab CI - PullRequest
0 голосов
/ 14 февраля 2019

Я разрабатываю приложение, используя Django , и я использую Cypress для фронтального тестирования.Настройка работает локально, но я хотел бы настроить тестирование на gitlab-ci .

Мне удалось заставить Gitlab запускать тесты Cypress (пока приложение работает на рабочем сервере),Чего я хотел бы добиться (и я изо всех сил стараюсь), чтобы Gitlab CI запустил приложение Django (возможно, даже с nginx / gunicorn, имитируя производственную среду; но встроенного сервера разработки также было бы достаточно).

Возможно ли это вообще?Чтобы запустить сервер и запустить Cypress за один раз? Я видел несколько примеров использования docker-compose в Gitlab-CI для приложений nodejs - но я бы хотел избежать этого, так как все это устанавливается правильно (поэтомучто он использует кеш и т. д.) кажется очень сложной задачей.

1 Ответ

0 голосов
/ 14 февраля 2019

Предлагаю сделать это в чистом виде.С помощью оператора & вы можете запустить 2 задачи параллельно.

python manage.py runserver & npx cypress run запустит django и кипарис, а результат последнего (кипарис) будет конечным результатом команды.

Если выБэкэнду нужно время для запуска. Я предлагаю запустить Cypress через некоторое время (например, 5 с) на python manage.py runserver & (sleep 5 && npx cypress run)

. И если вы хотите убить бэкэнд-процесс, вы можете сохранить pid этого процесса в файл с помощью * 1011.* и запустите kill $(cat backend.pid) команду, чтобы убить процесс с идентификатором, сохраненным в этом файле

...