我们如何使用标签对 Cypress 规范进行分组并在 CircleCI 上并行运行组?

问题描述 投票:0回答:1

假设我有以下

it
块。我添加了一些标签来对测试进行分组。我需要在一台机器上运行所有带有
"Group1"
标签的规格。以及那些在另一台机器上有
"Group2"
标签的人。基本上,我需要并行运行 Group1 和 Group2。

分组的原因是,如果我只启用

--parallel
,就有机会并行运行“Test1”和“Test3”。但由于某些数据依赖性,它会失败。因此 Test1 和 Test3 应该串联运行。但 Test1 和 Test2 可以并行运行。

    it("Test1", { tags: ["Parallel", "Group1"] }, () => {
      cy.log("Test1");
    });
    
    it("Test2", { tags: ["Parallel", "Group2"] }, () => {
      cy.log("Test2");
    });
    
    it("Test3", { tags: ["Parallel", "Group1"] }, () => {
      cy.log("Test3");
    });
    
    it("Test4", { tags: ["Parallel", "Group2"] }, () => {
      cy.log("Test4");
    });

预期行为

Parallel: 2
Machine 1: Run All specs in Group1 in series
Machine 2: Run All specs in Group2 in series

当前圈子.yml

version: 2

workflows:
  version: 2

jobs:
  cypress-ci:
    parallelism: 1
    docker:
      - image: "cypress/included:10.0.0"
    working_directory: ~/app
    steps:
      - checkout
      - restore_cache:
          keys:
            - node-deps-v1-{{ .Branch }}-{{ checksum "cypress-tests/yarn.lock" }}
      - run:
          name: Install Packages
          command: |
            cd cypress-tests
            npm install --legacy-peer-deps
      - save_cache:
          key: node-deps-v1-{{ .Branch }}-{{ checksum "cypress-tests/yarn.lock" }}
          paths:
            - ~/cypress-tests/.npm
      - run:
          name: Execute cypress
          command: |
            cd cypress-tests
            npm run --env grepTags="Parallel" --RECORD_KEY=${RECORD_KEY}

有人可以帮助我更新circle.yml 文件以获得预期的行为吗?

cypress circleci circleci-workflows circleci-orb
1个回答
0
投票

您应该为每个组创建一个作业(请参阅此示例)并按给定的组标签过滤运行。

所以像这样:

  group-1:
    steps:
      ...
      - run: npm run --group group-1 --tags Group1

  group-2:
    steps:
      ...
      - run: npm run --group group-2 --tags Group2
© www.soinside.com 2019 - 2024. All rights reserved.