针对多种环境的CircleCI并行Cypress

针对多种环境的CircleCI并行Cypress,cypress,circleci,Cypress,Circleci,我目前正在使用CircleCI在单个环境中运行Cypress测试套件。CircleCI配置指定以下内容: docker: - image: cypress/base:10 parallelism: 16 steps: - *quick_attach - restore_cache: key: dependency-cache-{{ checksum "yarn.lock" }}-v2 - ru

我目前正在使用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中,我有一个hashmap并在其上循环

#!/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测试,每个测试在一个并行运行的环境中运行)。

。它包含针对Windows和Linux运行测试的方法,并使用的
ci build id
参数链接