#angular #continuous-integration #gitlab #devops
# #угловатый #непрерывная интеграция #gitlab #devops
Вопрос:
Я пытаюсь запустить тест после компиляции Angular-проекта. Проблема в том, что когда проект окончательно скомпилирован, процесс все еще активен ( ng serve
), поэтому тест не запускается. (Я использую кипарис для тестирования!) Лучшее, что я сделал, — это выполнил обе работы одновременно на одном этапе, и одно руководство приостановилось, ожидая завершения другого, но моя конечная цель — каким-то образом сделать это автоматическим.
Это и есть код:
image: node:12.20
cache:
paths:
- node_modules/
stages:
- test
job-prepare:
stage: test
script:
- node -v
- npm -v
- npm i
- npm install -g @angular/cli@9.0.6
- ng version
- npm run serve:windows
job-test:
stage: test
script:
- npm run e2e
when: manual
allow_failure: false
Спасибо
Комментарии:
1.
serve
команда, используемая для запуска сервера, но не для тестирования. для тестирования используйте angular.io/guide/testing2. Я использую cypress для тестирования, поэтому мне нужно, чтобы проект был запущен, в качестве временного решения, которое я использовал:
when: delayed start_in: (average compile time)
Ответ №1:
Почему бы не использовать только одно задание с before_script
script
помощью компиляции before_script
и тестирования внутри script
?
https://docs.gitlab.com/12.10/ee/ci/yaml/#before_script-and-after_script
Комментарии:
1. Поскольку процесс компиляции должен быть включен (никогда не завершается), поэтому задание также не завершается и никогда не переходит к следующему заданию (тестирование)
2. Использование
before_script
иafter_script
будет только одним заданием. Тогда почему бы не запустить вашу компиляцию в фоновом режиме сamp;
помощью?