如何调试在phantomjs中运行的ember-cli测试

时间:2015-01-22 17:46:53

标签: ember.js phantomjs ember-cli

上下文:我对我的ember-cli应用程序进行了验收测试,测试在Chrome中运行得很好。然而,在phantomjs中,我的测试失败了 - 用户界面不会以同样的方式创建,我正在尝试找出原因。 (我认为测试因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);

但两者都是:停止测试进一步,b:只让我记录测试本身的信息,而不是我的应用程序。

有没有办法在“ember test”之外运行我的测试,或者某种方式附加到正在运行的测试过程?或者,有没有办法让console.log()消息显示在输出中?

4 个答案:

答案 0 :(得分:12)

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

Debugging tests on PhantomJS using Testem test runner

答案 1 :(得分:9)

GMT: Mon, 29 Jun 2015 22:30:00 GMT添加testem.json

在您运行测试时,请在浏览器中访问"phantomjs_debug_port": 9000,然后点击显示的长链接。

来源:cssugared

答案 2 :(得分:6)

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

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

答案 3 :(得分:0)

要回答关于&#34的原始问题的一部分;如何使用TAP报告器,然后使用console.log(在我的应用程序和测试中),如何显示日志消息?出现在输出中; xunit记者没有通过console.log,这让我感到困惑。

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