Я запускаю приложение Angular 2+ с интеграционным тестированием с использованием Cypress.io и CI с использованием circleCI.
Я скопировал учебник, предоставленный здесь для настройки проекта Angular сcircleCI, но для запуска Cypress нужно было добавить шары кипариса.Поэтому я получил следующий скрипт config.yml:
version: 2.1
orbs:
cypress: cypress-io/cypress@1.0.1
jobs:
build:
working_directory: ~/project
docker:
- image: angular/ngcontainer
steps:
- checkout
- run:
name: Show current branch
command: |
echo ${CIRCLE_BRANCH}
echo $fireBaseApiKey
- restore_cache:
keys:
- v1-dependencies-{{checksum "package.json"}}
- v1-dependencies-
- run:
name: Install local dependencies
command: |
npm install
- save_cache:
key: v1-dependencies-{{checksum "package.json"}}
paths:
- node_modules
- run:
name: Building
command: npm run build
- save_cache:
key: v1-dist-{{ .Environment.CIRCLE_BRANCH}}-{{ .Environment.CIRCLE_SHA1}}
paths:
- dist
workflows:
version: 2.1
build:
jobs:
- build
- cypress/install:
requires:
- build
build: 'npm run build'
context: fireBaseApiKey
- cypress/run:
requires:
- cypress/install
- build
start: 'npm start'
context: fireBaseApiKey
Когда запускается circleCI, первые два задания рабочего процесса выполняются успешно (сборка и кипарис / установка), но кипарис / запуск приводит к следующемуошибка:
Cypress не может проверить, что сервер, установленный как ваш 'baseUrl', работает:
http://localhost:4200
Ваши тестыСкорее всего, отправлять запросы этому baseUrl, и эти тесты не пройдут, если вы не загрузите свой сервер.
Пожалуйста, запустите этот сервер, а затем снова запустите Cypress.
I'mпредполагая, что я не загружал сервер с помощью команды npm run build
.
Я попытался добавить:
- run:
name: start ng server
command: ng serve
в задании "build", но затем произошла ошибка:
/ bin / bash: ng: команда не найдена
Я пытался найти докер-контейнер на dockerhub, который выполнял бы команды ng, и «angular / ngcontainer» показался хорошим кандидатомпотому что с помощью circleci / node: 6.10-браузеры в качестве моего образа докера по учебной ссылкеЯ также не распознал команды ng.
Я полагаю, что я в основном только что вышел из своей глубины и не смог найти пример проекта Angular, который использует Cypress и запускает CI на circleCI.Наличие такого примера, вероятно, будет иметь большое значение, помогая вещам иметь смысл.До тех пор, есть ли у кого-нибудь рекомендации о том, как я мог бы выполнить такую команду, как ng serve
, и считаете ли вы, что это устранит ошибку загрузки моего сервера?
Обновление 3 февраля, 2019 г. 19: 34:
Я добавил wait-on
после изучения использования шара кипариса чуть больше за совет от друга в интернете.Таким образом, моя обновленная команда -cypress/run
выглядит следующим образом:
...
- cypress/run:
requires:
- cypress/install
- build
start: 'npm start'
wait-on: 'http://localhost:4200'
context: fireBaseApiKey
Кажется, что это ожидание 'http://localhost:4200', которое никогда не происходит.