gpt4 book ai didi

gitlab-ci - 使用 Gitlab CI 在 Cypress.io 上的一个条目中对并行运行进行分组

转载 作者:行者123 更新时间:2023-12-05 03:48:20 25 4
gpt4 key购买 nike

我有一个配置了 Gitlab CINx 项目。我的项目包含 2 种 E2E 测试 - 主项目和 Storybook 的测试。测试本身运行良好,但我使用 cypress.io 仪表板收集 E2E 结果。

我将项目配置为记录它们并且它有效,但我希望将它们保存为一次运行,但使用 2 组 x 2 浏览器(Main/Storybook x Chrome/Firefox)。记录也工作正常,cypress.io 仪表板正确识别 2 个浏览器和组,但我只得到一个浏览器的结果(Chrome for Main 有一个结果,Firefox for Storybook 有一个结果——第二种浏览器在过滤器中可见,但它们的结果为空 - 请查看屏幕截图)。

One test run with correct groups and browsers

No results for Firefox for Main

我尝试了 https://docs.cypress.io/guides/guides/parallelization.html 中的一些标志和配置

不幸的是,无论我尝试什么,总会出现某种错误,例如:

You passed the --parallel flag, but we do not parallelize tests acrossdifferent environments. This machine is sending different environmentparameters than the first machine that started this parallel run. Theexisting run is: https://dashboard.cypress.io/projects/qwerty/runs/44In order to run in parallel mode each machine must send identicalenvironment parameters such as:

  • specs
  • osName
  • osVersion
  • browserName
  • browserVersion (major) This machine sent the following parameters: { "osName": "linux", "osVersion": "Ubuntu - 20.04", "browserName":"Firefox", "browserVersion": "80.0.1", "specs": ["src/integration/app/app.spec.ts" ] } https://on.cypress.io/parallel-group-params-mismatch

每组只有一个浏览器通过,第二个浏览器出现以下错误。

Pipeline result

这些是我在 package.json 中的脚本:

# 1st --parallel flag for nx and 2nd after -- for Cypress directly
# $CYPRESS_RECORD_KEY - key provided by cypress.io
# $CI_ID - <branch-name>-<commit-hash> - e.g. my-new-branch-qweqtwerwtreyzsxfc4123dxfv

"e2e:ci": "nx e2e main-e2e --prod --headless --parallel --record --key $CYPRESS_RECORD_KEY --ci-build-id $CI_ID --group MainWeb -- --parallel",
"e2e:ci:chrome": "yarn e2e:ci --browser=chrome",
"e2e:ci:firefox": "yarn e2e:ci --browser=firefox",

"e2e:storybook:ci": "nx e2e storybook-e2e --prod --headless --parallel --record --key $CYPRESS_RECORD_KEY --ci-build-id $CI_ID --group Storybook -- --parallel",
"e2e:storybook:ci:chrome": "yarn e2e:storybook:ci --browser=chrome",
"e2e:storybook:ci:firefox": "yarn e2e:storybook:ci --browser=firefox"

这是我的 .gitlab-ci.yml(仅 e2e 阶段部分):

E2E Main-Web - Chrome:
stage: e2e
script:
- yarn e2e:ci:chrome

E2E Main-Web - Firefox:
stage: e2e
script:
- yarn e2e:ci:firefox

E2E Storybook - Chrome:
stage: e2e
script:
- yarn e2e:storybook:ci:chrome

E2E Storybook - Firefox:
stage: e2e
script:
- yarn e2e:storybook:ci:firefox

我不确定这里有什么问题。我尝试了很多配置、标志、解决方案(甚至在 Gitlab 上并行化),但总是有问题......

当然,我将 cypress.io > Project Settings > Parallelization > Run Completion Delay 设置为 60s

最佳答案

我认为答案在于您分享的 Cypress 错误:

You passed the --parallel flag, but we do not parallelize tests acrossdifferent environments.

您正在触发两个并行运行,每个并行运行设置两个浏览器。如错误所述,这不是预期的 - 每个并行运行应该只有 一个 浏览器。

这种情况下的解决方案很简单:只需配置四个组,每个测试和浏览器类型一组。

这是它的样子:

"e2e:ci": "nx e2e main-e2e --prod --headless --parallel --record --key $CYPRESS_RECORD_KEY --ci-build-id $CI_ID -- --parallel",
"e2e:ci:chrome": "yarn e2e:ci --browser=chrome --group 'MainWeb Chrome' ",
"e2e:ci:firefox": "yarn e2e:ci --browser=firefox --group 'MainWeb Firefox' ",

"e2e:storybook:ci": "nx e2e storybook-e2e --prod --headless --parallel --record --key $CYPRESS_RECORD_KEY --ci-build-id $CI_ID -- --parallel",
"e2e:storybook:ci:chrome": "yarn e2e:storybook:ci --browser=chrome --group 'Storybook Chrome'",
"e2e:storybook:ci:firefox": "yarn e2e:storybook:ci --browser=firefox --group 'Storybook Firefox'"

关于gitlab-ci - 使用 Gitlab CI 在 Cypress.io 上的一个条目中对并行运行进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64450913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com