3
我使用PhantomJS 1.8.2運行一些Jasmine單元測試使用JsTestDriver。使用Chrome可以很好地運行測試,但使用PhantomJS時大約有一半的時間,測試結果是沒有發現測試用例。webpage.open()從來沒有調用回調
我將問題縮小到PhantomJS未能打開本地JsTestDriver頁面(http://localhost:9876/capture
)。下面是如何重現此,大約50%的時間中,加載中...與狀態...從未顯示消息:
- 啓動JsTestDriver服務器本地
- 運行
phantomjs phantomjs-jstd-bridge.js
文件phantomjs-jstd-bridge.js
看起來是這樣的:
var page = require('webpage').create();
var url = 'http://localhost:9876/capture';
console.log('Loading ' + url);
page.open(url, function(status) {
console.log('Loaded ' + url + ' with status ' + status);
});
第一個日誌行(LOADI ng ...)始終顯示,但來自回調的第二行僅打印約一半的時間。
這可能是什麼原因造成的?每次在網絡瀏覽器中打開有問題的URL都可以正常工作。
有什麼方法可以獲得更多信息,瞭解PhantomJS爲什麼不調用回調?
由於您在測試中使用了回調函數,因此您可能必須使用[AsyncTestCase](https://code.google.com/p/js-test-driver/wiki/AsyncTestCase)。 – Uooo 2013-03-18 06:57:08