我在PhantomJS上使用Karma运行我的测试,并且面临异步运行循环问题。我想知道在测试运行时是否有交互式调试代码(逐步执行)。在使用Karma运行测试时使用PhantomJS代码使用代码
任何帮助,非常感谢。
我在PhantomJS上使用Karma运行我的测试,并且面临异步运行循环问题。我想知道在测试运行时是否有交互式调试代码(逐步执行)。在使用Karma运行测试时使用PhantomJS代码使用代码
任何帮助,非常感谢。
您可以在一个测试块中设置debugger
语句。然后将你的浏览器指向你正在运行业力的任何URL并打开你的开发工具。调试器应该在它到达你的测试块时触发。与
假设茉莉/摩卡期待:
it('fires a debugger', function() {
var bool = true || false;
debugger;
while(bool) {
// uh oh...
}
});
以我的经验,调试器会火上都http://localhost:<your-karma-port>
和http://localhost:<your-karma-port>/debug.html
,但你可以使用调试URL有更多的运气。
如果您无法看到您的调试器语句,那么您的测试设置可能存在更大的问题。
如果你在你的业力测试使用karma-phantomjs-launcher NPM包,你可以在karma.conf.js
文件运行调试器模式PhantomJS添加以下代码片段:
browsers: ['PhantomJS_custom'],
// you can define custom flags
customLaunchers: {
'PhantomJS_custom': {
base: 'PhantomJS',
debug: true
}
}
在此之后,写下你想要一个debugger;
声明将断点放入代码中。
现在,当您启动karma测试运行器时,您会看到PhantomJS正在等待您的浏览器连接到调试器端口以开始执行测试。
29 12 2016 13:14:25.269:INFO [launcher]: Starting browser PhantomJS
29 12 2016 13:14:25.325:INFO [phantomjs.launcher]: ACTION REQUIRED:
29 12 2016 13:14:25.325:INFO [phantomjs.launcher]:
29 12 2016 13:14:25.326:INFO [phantomjs.launcher]: Launch browser at
29 12 2016 13:14:25.326:INFO [phantomjs.launcher]: http://localhost:9000/webkit/inspector/inspector.html?page=2
29 12 2016 13:14:25.326:INFO [phantomjs.launcher]:
29 12 2016 13:14:25.326:INFO [phantomjs.launcher]: Waiting 15 seconds ...
点你的Chrome浏览器在日志中指定的地址。现在,您将看到Phantomjs提供的调试器界面。代码在PhantomJS引擎中执行,但您可以观察断点,评估表达式并从任何基于Webkit的浏览器执行许多调试操作。
可能有更好的方法,但我只是用浏览器的开发工具。在chrome中设置一个断点,或使用'debugger;'语句。 – 2014-09-05 22:03:02
我会这样做,但问题是我在PhantomJS上专门面对一个问题。这些测试在Chrome和Firefox上运行得很好。 – 2014-09-05 22:25:40
Nick的意思是说,在普通的phantomjs中有一个远程调试器,你可以用'debugger;'设置断点。 – 2014-09-05 22:30:23