私は PhantomJS 1.8.2 を使用して、JsTestDriver を使用していくつかの Jasmine 単体テストを実行しています。テストは Chrome を使用して正常に実行されますが、PhantomJS を使用した場合の約半分の時間で、テスト ケースが見つからないというテスト結果が得られます。
この問題を、PhantomJS がローカルの JsTestDriver ページを開けないことに絞り込みました ( http://localhost:9876/capture
)。これを再現する方法は次のとおりです。約 50% の場合、Loaded ... with status ...メッセージは表示されません。
- 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);
});
最初のログ行 ( Loading ... ) は常に表示されますが、コールバックからの 2 行目は約半分の時間しか出力されません。
これの原因は何ですか?問題の URL を Web ブラウザで開くと、毎回正常に動作します。
PhantomJS がコールバックを呼び出さない理由について詳しく知る方法はありますか?