【问题标题】:How to debug ember-cli tests running in phantomjs如何调试在 phantomjs 中运行的 ember-cli 测试
【发布时间】:2015-03-21 15:13:20
【问题描述】:

上下文:我对我的 ember-cli 应用程序进行了验收测试,并且测试在 Chrome 中顺利通过。但是,在 phantomjs 中,我的测试失败了—— UI 的创建方式不同,我正在尝试找出原因。 (我认为测试是因为https://github.com/ember-cli/ember-cli/issues/1763 而被破坏,但如何调试的一般问题仍然存在)

在 Chrome 中,我可以在测试中使用标准调试工具,一切都很好——但在 phantomjs 中,我无法使用调试器进行调试。我也没有在输出中看到 console.log() 消息——我得到的只是终端窗口中的测试结果列表。

我可以通过编写类似的东西来获取诊断信息

equal(true, false, "This is a log message");

然后我收到消息作为失败断言的详细信息,或者我可以尝试找出 DOM 中的内容

equal(true, false, document.getElementsByClassName("my-class".innerHTML);

但是这两个a:停止测试,b:只让我记录测试本身的信息,而不是我的应用程序。

有没有办法在“ember 测试”之外运行我的测试,或者有什么方法可以附加到正在运行的测试进程?或者,有没有办法让 console.log() 消息显示在输出中?

【问题讨论】:

    标签: ember.js phantomjs ember-cli


    【解决方案1】:

    您可以公开 PhantomJS 调试端口并在浏览器中打开它,然后您可以在调试器断点处与上下文交互。

    Debugging tests on PhantomJS using Testem test runner

    【讨论】:

    • 当我尝试这样做时,我可以附加到 phantomjs 进程,但随后发生了一些奇怪的事情,看起来好像 ember 正在跳入并试图捕获妨碍调试器的异常。也就是说,它确实提醒我应该使用“ember test --server”,从那里我可以在 testem 窗口中显示所有控制台日志,这是朝着正确方向迈出的一大步。谢谢!
    【解决方案2】:

    如果我使用 TAP 报告器,要回答我最初的问题中关于“如何显示日志消息”的部分,那么 console.log(在我的应用程序和我的测试中)消息会显示在输出中; xunit 记者没有通过 console.log 登录,这让我很困惑。

    (我还遇到了在 teamcity 上运行测试的行为与在本地运行不同的问题;在这种情况下,将 TAP 报告器与 https://github.com/aghassemi/tap-xunit(或 TAP teamcity 插件)结合使用可以让我获取日志消息和测试计数)

    【讨论】:

      【解决方案3】:

      testem.json 中添加"phantomjs_debug_port": 9000

      运行测试时,在浏览器中访问http://localhost:9000,然后点击显示的长链接。

      来源:cssugared

      【讨论】:

      • 如果您遇到任何问题,请确保您机器上的其他设备没有将端口 9000 用于其他设备
      • 警告任何在 2017 年阅读此内容的人。暴露在端口 9000 上的检查器非常不稳定,无法用于其预期目的。尝试了不同的端口,但没有任何区别。
      【解决方案4】:

      其他答案我没有运气,所以这是我发现的:

      在您希望能够与浏览器中的容器交互的测试点添加return pauseTest();。这是在文档中,但我不确定它在指南中。

      【讨论】:

      • 我在代码中(在 cmets 中)找到了它的“记录”。谢谢。
      • 我收到pauseTest 未定义或不是函数的错误。我想我必须从某个地方import 它,但不确定如何。
      猜你喜欢
      • 1970-01-01
      • 2015-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-03
      相关资源
      最近更新 更多