2013-03-13 74 views
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爲什麼不調用回調?

+0

由於您在測試中使用了回調函數,因此您可能必須使用[AsyncTestCase](https://code.google.com/p/js-test-driver/wiki/AsyncTestCase)。 – Uooo 2013-03-18 06:57:08

回答

1

查看Troubleshooting wiki頁面中提及的一些提示。特別有用的是跟蹤網絡傳輸活動,因爲它可能指示某些資源是否未正確發送或其他類似問題。

相關問題