(未捕获的异常)ReferenceError:gtag未在Cypress中定义

问题描述 投票:0回答:2

我是 cypress 的新手,尝试登录我的练习网站,但我遇到了这个 gtag 的问题。使用 cypress 的实际测试已完成(用户成功登录),但有一个错误导致此测试失败,有人可以帮助我吗?这是我的照片和我的赛普拉斯代码和我的配置

这是我的错误图片

1

describe('Login user', () => {
  beforeEach(() => {
    cy.viewport(1392, 768)
    cy.visit('thiswebcom')

  })

  it('Login as user', () => {
    cy.get('a[href*="/login"]').first().click()
    cy.get('#buttonLoginTrack').should('have.text', '\n                                                        Login\n                                                    ')
    
    const userName = '[email protected]'
    const password = 'mypassword'

    cy.get('#email').type(`${userName}`)
    cy.get('#password').type(`${password}`).type('{enter}')

  })

这是我用于登录的 cypress 代码

module.exports = {
  e2e: {
    setupNodeEvents(on, config) {
      // implement node event listeners here

    },
  },
};

这是我的 cypress.config.js 文件

我尝试使用 blockHosts,但不知道如何将其放入,谢谢

javascript automated-tests cypress uncaught-exception
2个回答
4
投票

由于图片中有“未捕获的异常”,这意味着应用程序本身正在创建该错误 - 在正常情况下用户看不到该错误,除非您在开发工具中检查它。

诀窍是像这样将捕手放在测试的顶部

Cypress.once('uncaught:exception', (err, runnable) => {
  return false;
})

这可以阻止测试仅仅因为应用程序中存在潜在无害的错误而失败。

这里是一些文档:未捕获的异常

一般来说,作为测试人员,你会有点担心这样的错误,但它无法从测试中修复,只能从应用程序本身修复。


-1
投票

Kitty.Flanagan 的答案是一个很好的答案,但在使用

Cypress.on()
时应谨慎,因为它将产生全局影响,而
cy.on()
只会持续用于测试文件。

此外,返回 false 将绕过所有未捕获的异常,并可能导致测试无法捕获问题。

最终,您希望向您的开发团队提出任何未捕获的异常问题。如果未捕获的异常是由第 3 方抛出且无法解决的,那么我建议将以下内容添加到您的测试文件中。

cy.on('uncaught:exception', (err, runnable) => {
  return !e.message.includes('ReferenceError: gtag is not defined in Cypress')
})
© www.soinside.com 2019 - 2024. All rights reserved.