【问题标题】:Run ng e2e with --element-explorer not working使用 --element-explorer 运行 ng e2e 不起作用
【发布时间】:2018-12-31 11:12:07
【问题描述】:

我正在尝试弄清楚如何调试端到端测试。我在 Angular 项目中使用量角器并使用 protractor-cucumber-framework 自定义框架。

Given('[...]', async () => {
  await page.goToMeetupsListPage();
  const profile: Profile = getMichel();
  await page.setProfile(JSON.stringify(profile));
  await page.refreshPage();
});

我在这种函数中设置了一个断点。

然后我运行命令ng e2e --element-explorer,它应该寻找断点。

然后我在启动时收到此错误:

/Users/.../node_modules/protractor/built/debugger.js:212
                    doneDeferred.fulfill(true);
                                 ^
TypeError: doneDeferred.fulfill is not a function
    at Socket.tester.once (/Users/b.../node_modules/protractor/built/debugger.js:212:34)
    at Object.onceWrapper (events.js:273:13)
    at Socket.emit (events.js:182:13)
    at Socket.EventEmitter.emit (domain.js:441:20)
    at TCP._handle.close (net.js:611:12)

我不知道发生了什么。我尝试删除每个 async/await 关键字,但仍然是相同的消息。有什么想法吗?

【问题讨论】:

    标签: angular protractor e2e-testing angular-e2e


    【解决方案1】:

    显然--element-explorer 参数似乎不适用于调试 e2e 测试。相反,您需要使用 --inspect-brk 手动运行量角器

    node --inspect-brk ./node_modules/protractor/bin/protractor ./e2e/protractor.conf.js
    

    那就关注official guide吧。

    【讨论】:

    • 是的!供将来参考,元素资源管理器即将消失(很快),因为控制流正在消失。控制流是 selenium-webdriver 的 promise manager。快速查看您的上述代码,您似乎正在使用 async / await。为了使用 async / await,您需要关闭控制流承诺管理器,这样 element-explorer 将无法为您工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2019-03-30
    • 2015-12-22
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    相关资源
    最近更新 更多