【问题标题】:Cypress chrome not pausing at debugger statementCypress chrome 不会在调试器语句处暂停
【发布时间】:2020-06-03 18:50:43
【问题描述】:

我在测试中有如下代码:

it('shows correct language', () => {
  cy.visit('/product/my product');
  cy.changeLanguage('English');
  cy.get('[data-test=attribute-name]').should(
    (elements) => {
      console.log('this shows in console', elements);
      alert('But it wont break!!!!!!!!!!');//this alert shows
      debugger;//never breaks here
    },
  );
});

使用./node_modules/.bin/cypress open 启动 cypress,然后我在 cypress 窗口中运行测试,打开 chrome 并手动打开开发工具(不知道如何告诉 cypress 在打开 devtools 的情况下打开 chrome)。

它在控制台中显示消息并显示警报,但实际上从未中断。在sources 选项卡中,未设置“停用断点”,因此断点处于活动状态。

手动设置断点然后在第一次运行后点击“运行所有测试”按钮会在手动设置的断点处暂停但忽略debugger语句。

【问题讨论】:

    标签: javascript cypress


    【解决方案1】:

    我想我已经设法解决了您遇到的问题

    您可以使用cy.debug(),而不是使用debugger。但要使其正常工作,您需要在运行测试时打开调试器/控制台。

    查看此页面了解更多信息:https://docs.cypress.io/api/commands/debug.html

    【讨论】:

    • 它现在正在暂停,但它在http://localhost:8080/__cypress/runner/cypress_runner.js 中暂停,这与我希望它在测试中暂停的位置相去甚远。试图退出,但 25 次后我仍然在 cypress 代码中,而不是在我的测试中。代码中的正常调试语句和断点仍然被完全忽略。这可能与 cypress 必须重建代码和/或使用源映射有关吗?如果我将 console.log 语句放在那里,我会在控制台中看到它们并单击它会将我带到日志所在的确切行(在原始代码中,而不是转译版本)
    • @HMR 你发现了吗?
    猜你喜欢
    • 1970-01-01
    • 2020-10-31
    • 2012-10-01
    • 2012-10-12
    • 1970-01-01
    • 2013-11-06
    • 2012-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多