3

私は 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 がコールバックを呼び出さない理由について詳しく知る方法はありますか?

4

1 に答える 1

1

トラブルシューティングwiki ページに記載されているいくつかのヒントを確認してください。一部のリソースが適切に送信されていないか、または他の同様の問題があるかどうかを示す可能性があるため、ネットワーク転送アクティビティを追跡すると特に便利です。

于 2013-03-13T14:27:54.100 に答える