假设我有以下
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 文件以获得预期的行为吗?
您应该为每个组创建一个作业(请参阅此示例)并按给定的组标签过滤运行。
所以像这样:
group-1:
steps:
...
- run: npm run --group group-1 --tags Group1
group-2:
steps:
...
- run: npm run --group group-2 --tags Group2