我在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