3

grunt-contrib-qunitWindows 8 で Phantom を使用して、ヘッドレス モードで既存の qunit テスト (ajax 要求結果の解析のテスト) のスイートを実行しようとしています。

次のシナリオでは、テストは正常に完了します。

  • Fiddler または別のプロキシが実行されていないブラウザからリモート ページに直接アクセスした場合
  • Phantom がFiddler を開いて実行ているコマンド プロンプトからテストを実行する場合

奇妙なことに、フィドラーを開いてリクエストを監視していないと、テストしているAJAXリクエストが初期化されないようです。デフォルトの IE LAN 設定を確認しましたが、有効になっているプロキシはありません。[自動検出設定] チェックボックスをオンにしてみましたが、変更はありません。

何かご意見は??

私のセットアップの詳細:

  • ノード v0.10.4
  • 最新grunt-contrib-qunit
  • ウィンドウズ8
  • QUnit は 4 つまたは 5 つのモジュールに分割され、一部のモジュールではセットアップおよびティアダウン タスク、非同期および同期テスト、autorun は false に設定されています。

アップデート:

「クライアント接続の再利用」と「サーバーへの接続の再利用」の Fiddler のオプションをオフにすると、Fiddler がオフの場合と同じ障害動作が発生するようです。これにより、接続が時期尚早に閉じられるという問題があると思われるようになったので、カスタムのキープアライブ ヘッダーを設定しようとしましたが、それでもエラーが発生します。

更新 2:

ページ自体は正常に読み込まれますが、リクエストは失敗するため、これにはまだ疑問がありますが、これはおそらく NTLM 認証に関連しているようです。Fiddler は何らかの方法でハンドシェイクを促進する可能性があります。Phantom github ページ に、NTLM に関する未解決の問題があります。

更新 3:

今晩トラブルシューティングを続けたところ、問題は POST リクエストの認証のみにあるようです。GET リクエストは正常に機能しているようです。私は今のところ、ASHX ハンドラを介してすべてのリクエストをルーティングし、認証コンポーネントをドロップすることで、この問題を回避しています。変更する必要があったのは、ファントムの Web セキュリティを無効にして、クロスドメイン リクエストを通過できるようにすることだけでした。

4

1 に答える 1