Cypress 测试未在 CI 上的 Nuxt 组件内加载数据

Cypress test not loading data inside Nuxt component on CI

提问人:user2953989 提问时间:11/14/2023 更新时间:11/14/2023 访问量:15

问:

我的项目中有一些赛普拉斯测试,直到最近才运行良好,但在过去的一周里开始失败。我可以看到问题是我的 Contentful 数据没有拉取到默认布局中的组件,这使得测试在搜索从 Contentful 中提取的数据时失败。

如果我使用 localhost:3000 在本地运行它们,测试就会通过,只有在 Github Ci 中它们才不会传递/获取 Contetnful 数据

例如,我的 /layouts/default.vue 是:

<template>
  <div :class="layout-body">
    <SkipLink />
    <Nuxt />
    <GlobalFooter />
  </div>
</template>

SkipLink 和 GlobalFooter 组件中的任何内容数据都显示在测试中,但 Nuxt 组件中没有内容数据。

我的工作流文件是:

run-cypress:
    runs-on: ubuntu-22.04
    env:
      AWS_ACCESS_KEY_ID: ${{ ACCESS_KEY_ID }}
      AWS_SECRET_ACCESS_KEY: ${{ SECRET_ACCESS_KEY }}
      AWS_REGION: "eu-west-2"
    strategy:
      matrix:
        node: [16]
    name: E2E on Node v${{ matrix.node }}
    steps:
      - name: Setup Node
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node }}
      - name: Checkout
        uses: actions/checkout@v4
      - name: Cypress run
        uses: cypress-io/github-action@v6
        with:
          start: npm run dev
          wait-on: http://localhost:3000
          wait-on-timeout: 360
          browser: electron
          config: video=false,pageLoadTimeout=100000,defaultCommandTimeout=60000
        env:
          CYPRESS_ENVIRONMENT: local

我尝试过的事情:

  • 在工作流文件中添加pageLoadTimeout和defaultCommandTimeout(当它工作时,它们以前不存在,现在仍然不起作用)
  • 更新 cypress-io/github-action(之前为 v5)
  • 更新 actions/setup-node(以前称为 v2)
  • 使用更具体的 Node 版本
  • 检查内容丰富的 API 密钥
  • 使用 Electron 浏览器而不是 Chrome
vue.js vuejs2 nuxt.js 赛普拉斯 赛普拉斯组件测试运行器

评论


答: 暂无答案