В настоящее время я использую CircleCI для запуска своего набора тестов Cypress в одной среде. Конфигурация CircleCI определяет следующее:
docker:
- image: cypress/base:10
parallelism: 16
steps:
- *quick_attach
- restore_cache:
key: dependency-cache-{{ checksum "yarn.lock" }}-v2
- run:
name: Run Cypress Tests
command: >
CYPRESS_BRANCH=$CIRCLE_BRANCH
CYPRESS_SOURCE=CircleCI
CYPRESS_RECORD_KEY=$CYPRESS_RECORD_KEY
/bin/bash ./scripts/cypress_run_circleci_all.sh
Внутри cypress_run_circleci_all. sh, у меня есть хэш-карта и l oop поверх нее.
#!/bin/bash
set -e
declare -A environments
environments[dev]="https://dev.mydomain.com"
environments[qa]="https://qa.mydomain.com"
## loop through the all environments
for env_name in ${!environments[@]}
do
TAGS="all-envs-test,${env_name}"
CYPRESS_baseUrl=${environments[$env_name]} \
yarn cypress:run:desktop --record \
--group Desktop \
--parallel \
--tag \"$TAGS\" || true
echo "sleeping 60s"
sleep 60
done
Все работает как ожидалось для первая среда, но вторая среда всегда заканчивается очень быстро. Я предполагаю, что есть что-то в выполнении нескольких команд cypress как части параллельной команды, которая нарушает работу, но я не уверен, что именно.
Любые предложения о том, что я делаю неправильно, и что я могу сделать с добиться того, что я хочу (выполнение тестов cypress последовательно в нескольких средах, причем каждый запуск в среде выполняется параллельно).