【问题标题】:Cypress Error "Attempted to wrap warn which is already wrapped"赛普拉斯错误“试图包装已经包装的警告”
【发布时间】:2023-01-13 02:22:45
【问题描述】:

最终目标:使用 Cypress 和 Typescript 在控制台上测试警告和错误。

当前错误信息:Attempted to wrap warn which is already wrapped

代码:

  describe.only("Unauthenticated User", () => {
    it("No Console Errors for /", () => {
      cy.visit("/", { 
        onBeforeLoad(win) { cy.spy(win.console, 'error').as('onBeforeLoadSpyWinConsoleError') },
        onLoad(win) { cy.spy(win.console, 'error').as('onLoadSpyWinConsoleError') } 
      });
      cy.get('@onBeforeLoadSpyWinConsoleError').should('have.callCount', 0); 
      cy.get('@onLoadSpyWinConsoleError').should('have.callCount', 0); 
    });
    it("No Console Warns for /", () => {
      cy.visit("/", { 
        onBeforeLoad(win) { cy.spy(win.console, 'warn').as('onBeforeLoadSpyWinConsoleWarn') },
        onLoad(win) { cy.spy(win.console, 'warn').as('onLoadSpyWinConsoleWarn') } 
      });
      cy.get('@onBeforeLoadSpyWinConsoleWarn').should('have.callCount', 0); 
      cy.get('@onLoadSpyWinConsoleWarn').should('have.callCount', 0); 
    });
  });

有人可以不仅提供修复错误的解决方案,还提供一些删除代码重复的建议吗?任何文档都有助于更深入地了解错误。

【问题讨论】:

    标签: typescript cypress


    【解决方案1】:

    onBeforeLoad |功能 |在您的页面加载其所有资源之前调用。

    加载 |功能 |在您的页面触发其加载事件后调用。

    https://docs.cypress.io/api/commands/visit

    我最好的猜测是您不需要 onBeforeLoad()onLoad(),因为这些是指赛普拉斯何时做某事,而不是网页做某事。比如,Cypress 在您的页面加载之前做了什么,或者在您的页面加载时 Cypress 做了什么。因此,通过在 onBeforeLoad()onLoad() 期间实例化相同的 cy.spy(),您将尝试做同样的事情两次。我的假设是用于查找错误的 cy.spy() 已经实例化,并且会捕获记录的任何错误,无论它们出现在应用程序加载之前还是之后。

    【讨论】:

    • 我的问题是,如何确保得到所有错误? onBeforeLoad()onLoad()
    猜你喜欢
    • 2016-07-04
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 1970-01-01
    • 2022-09-30
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多