【问题标题】:CircleCI + Cypress configurationCircleCI + 赛普拉斯配置
【发布时间】:2018-05-07 21:04:40
【问题描述】:

您好,我在设置 CircleCi 和 Cypress 时遇到问题。

我包含了 docker 镜像和所有必要的依赖项,但它仍然不起作用。我尝试了大约 40 种不同的配置,但没有任何积极的结果。请检查下面屏幕截图中的配置和输出。

version: 2
jobs:
  build:
    docker:
      - image: circleci/node:9.2.0

      - image: circleci/mongo:3.4.4
      - image: cypress/base:8

working_directory: ~/repo

steps:
  - checkout

  - restore_cache:
      keys:
      - v1-dependencies-{{ checksum "package.json" }}
      - v1-dependencies-

  - run: yarn install

  - save_cache:
      paths:
        - node_modules
      key: v1-dependencies-{{ checksum "package.json" }}

  - run: yarn test   // THIS COMMAND RUNS UNIT TESTS - and it is working ok

  - run: yarn run dev & $(npm bin)/cypress run // THIS ONE IS FAILING

我还意识到,如果我删除 node/mongo 的图像并只运行 e2e 测试它正在工作。当我尝试使用三个 docker 映像同时运行单元测试和 e2e 测试时,就会出现问题。

【问题讨论】:

  • 这是一个开源项目吗?如果没有,您能否提供一个包含可复制示例代码的存储库,以便其他人可以对其进行测试?此外,屏幕截图很少像复制粘贴实际文本那样有用。
  • 按要求修改。这是私人仓库,但如果您知道如何修复它,我很乐意邀请​​您。
  • 您希望测试在哪个实例上运行?如果删除其他两个可以正常工作,也许只是将 Cypress 移到第一个列出的图像?
  • 我也试过这样做

标签: testing cypress circleci-2.0


【解决方案1】:

我尝试了bkcura's answer,但没有成功,仍然出现同样的错误。

所以我尝试使用新的圆形功能(球体)来混合两个球体:

它有效?

这是我的 config.yml

version: 2.1
orbs:
  cypress: cypress-io/cypress@1
  react: thefrontside/react@0.1.0
workflows:
  push:
    jobs:
      - react/install
      - react/test:
          requires:
            - react/install
  build:
    jobs:
      - cypress/run:
          yarn: true
          start: yarn start
          wait-on: 'http://localhost:3000'
          no-workspace: true

带有演示的回购:https://github.com/jeanbauer/create-react-app-cypress-circle-ci

注意:可能这不是那么有效,所以如果您看到任何改进,请给我发送问题here

【讨论】:

    【解决方案2】:

    在此处查看文档:https://docs.cypress.io/guides/guides/continuous-integration.html#Example-circle-yml-v2-config-file-with-yarn

    你不需要缓存node_modules,而是缓存~/.cache

    version: 2
    jobs:
      build:
        docker:
          - image: cypress/base:8
            environment:
              ## this enables colors in the output
              TERM: xterm
        working_directory: ~/app
        steps:
          - checkout
          - restore_cache:
              keys:
                - v1-deps-{{ .Branch }}-{{ checksum "package.json" }}
                - v1-deps-{{ .Branch }}
                - v1-deps
          - run:
              name: Install Dependencies
              command: yarn install --frozen-lockfile
          - save_cache:
              key: v1-deps-{{ .Branch }}-{{ checksum "package.json" }}
              paths:
                - ~/.cache  ## cache both yarn and Cypress!
          - run: $(yarn bin)/cypress run --record --key <record_key>
    

    为什么?

    Cypress 会在您的项目文件夹之外安装一个预构建的平台特定二进制文件,在 ~/.cache/Cypress 这个东西大约 200mb,下载需要一些时间,所以您应该缓存它。

    而且它只安装在postInstall,如果你缓存node_modules就不会发生这种情况,因此错误消息=)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多