上下文:我对我的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()消息显示在输出中?
答案 0 :(得分:12)
您可以公开PhantomJS调试端口并在浏览器中打开它,然后您可以在调试器断点处与上下文进行交互。
答案 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插件)结合使用可以获取日志消息并且还测试计数)