Cypress/Next.js 使用 --watch 选项的 E2E 测试运行良好,但使用 --headless 失败

Cypress/Next.js E2E test with --watch option works well, but failed with --headless

感谢赛普拉斯团队。 我对命令的 e2e 无头测试有一个问题。

当我 运行 使用 --watch 选项进行测试时,它顺利通过。 但是 --headless 选项失败了。 我需要在 CI 上 运行 这个问题,所以它必须尽快解决这个问题。

这是我 运行 的命令。

yarn nx run checkout-e2e:e2e --watch

yarn nx run checkout-e2e:e2e --headless

我总共有3个测试文件,具体是第一个测试在延迟很长时间(大约60秒)后没有通过,但其余的都通过了。

这是 运行 的一个代码文件。 其他文件也差不多。

const classname = 'buybox--buy-box-example-one-size'
const url = `?path=/story/${classname}`

describe('BuyBox Example visual regression', () => {
  it('Matches the snapshot', () => {
    cy.visit(url)
    cy.viewport(1000, 1500)
    cy.get(`#${classname}`)
    cy.get('body').type('S')
    cy.get('body').type('A')
    cy.wait(3000)
    cy.get('body').matchImageSnapshot('buyboxOneSizeDesktopExample')
    cy.viewport(375, 667)
    cy.get(`#${classname}`)
    cy.get('body').type('S')
    cy.get('body').type('A')
    cy.wait(5000)
    cy.get('body').matchImageSnapshot('buyboxOneSizeExample')
  })
})

我的开发环境:

这是无头模式下的错误截图。 https://prnt.sc/131k32j

有知道原因和解决方法的请回复。 谢谢。

我尝试解决这个问题,终于找到了。

转到 plugin/index.js 并注释这行...

 // on('file:preprocessor', preprocessTypescript(config))

Fixing e2e test failed on headless mode

我不确定为什么这对我有用,但我希望这对遇到同样问题的每个人都有帮助。 如果有人知道此解决方案的原因,请在此处发表评论。 谢谢