如何在CircleCI Cypress Orb中使用cypress-tags运行按标签过滤的测试
可行解决方案
方案1:自定义运行命令并补全并行参数
你之前直接调用自定义脚本并行失效,是因为没有把Orb默认附带的并行、上报、分组参数传入自定义命令,补全参数后即可正常使用:
- 先修改
package.json中的测试脚本,保留通用配置,动态接收后续传入的参数:
"test:tags": "cypress-tags run --headless -b chrome"
- 调整CircleCI配置,在自定义命令中补全所有需要的参数:
- cypress/run: name: e2e tests executor: with-chrome parallelism: 2 command: npm run test:tags -- -e TAGS='@usa' --record --parallel --group '2x-chrome' --ci-build-id '${CIRCLE_BUILD_NUM}' --tag 'on-pr' requires: - org/deployment
方案2:别名替换cypress执行命令(无侵入兼容原有Orb配置)
该方案不需要修改原有Orb的配置项,仅需要新增一个轻量的执行脚本即可:
- 在项目根目录新建名为
cypress的可执行脚本,内容如下:
#!/usr/bin/env bash cypress-tags "$@"
- 给脚本添加执行权限:
chmod +x ./cypress - 调整CircleCI配置,将当前目录加入环境变量PATH的最优先级,同时传入TAGS环境变量即可:
- cypress/run: name: e2e tests executor: with-chrome record: true parallel: true parallelism: 2 tags: 'on-pr' group: 2x-chrome ci-build-id: '${CIRCLE_BUILD_NUM}' environment: PATH: ./:./node_modules/.bin:$PATH TAGS: '@usa' requires: - org/deployment
该方案下Orb默认调用的cypress run命令会自动被替换为cypress-tags run,所有原有配置的并行、分组、上报逻辑都可以正常生效。
两种方案均可以满足你使用cucumber标签过滤用例的需求,不需要更换整套测试方案。
内容的提问来源于stack exchange,提问作者DavidZ
相关产品推荐
相关产品推荐

