1

我正试图让 Percy.io 拍摄一个用 Cypress 编写的、在 CircleCI 中构建的简单测试的快照。然而,尽管在 CircleCI 中通过了测试/构建,但“构建”在 Percy 仪表板中显示为失败。在赛普拉斯测试运行程序中,我的快照所在的位置显示“Percy 未运行”。

我遵循了 Percy 和 Cypress 网站上的教程。我可以通过运行percy exec -- cypress run让 Percy 在本地工作, 但 CircleCI 配置不通过命令cypress run运行 Cypress ,而是通过 cypress orb 运行它。

似乎赛普拉斯和珀西这两个球体不知道另一个球体的存在。

这是我的 CircleCI 配置文件:

version: 2.1
orbs:
  node: circleci/node@4.5.1
  cypress: cypress-io/cypress@1.28.0
  slack: circleci/slack@4.4.2
  percy: percy/agent@0.1.3
  

workflows:
  version: 2
  commit-workflow:
    jobs:
      - cypress/run:
          name: Smoke Tests
          record: true
          store_artifacts: true  
          spec: cypress/integration/E2E/*
          post-steps:
            - store_test_results:
                path: test-results
            - slack/notify:
                channel: general
                event: fail
                template: basic_fail_1
                mentions: '@Jac'
            - slack/notify:
                channel: general
                event: pass
                template: basic_success_1
                mentions: '@Jac'   
      - percy/finalize_all:
            requires:
              - Smoke Tests

Run Cypress Tests 步骤没有提到 Percy,所以我假设它根本没有运行 - 尽管使用了 Percy 球,但我缺少某种配置?

4

1 回答 1

0

抱歉,在发布到 Stack Overflow 后,我一直在寻找问题的答案!我显然不太了解 cypress/run 的属性。但本质上,可以添加一个自定义命令前缀属性,以修改用于运行 cypress 的命令。事实上,Percy 是Cypress 文档中使用的示例。

配置现在看起来像:

version: 2.1
orbs:
  node: circleci/node@4.5.1
  cypress: cypress-io/cypress@1.28.0
  slack: circleci/slack@4.4.2
  percy: percy/agent@0.1.3
  

workflows:
  version: 2
  commit-workflow:
    jobs:
      - cypress/run:
          name: Smoke Tests
          record: true
          store_artifacts: true  
          spec: cypress/integration/E2E/*
          command-prefix: npx percy exec -- 
          post-steps:
            - store_test_results:
                path: test-results
            - slack/notify:
                channel: general
                event: fail
                template: basic_fail_1
                mentions: '@Jac'
            - slack/notify:
                channel: general
                event: pass
                template: basic_success_1
                mentions: '@Jac'   
      - percy/finalize_all:
            requires:
              - Smoke Tests
于 2021-06-30T10:49:56.237 回答