問題タブ [grunt-contrib-qunit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
phantomjs - Proxy configuration for PhantomJS through grunt (qunit)
I'm attempting to run integration tests via grunt-contrib-qunit. I've set the --proxy
flag via the options
object, every ajax request returns a 404 (not found) error.
Gruntfile.js
The QUnit test itself fails with a 404 on the most trivial AJAX request:
test/index.html
Fails with:
It's worth noting that explicitly referencing the host (url: 'http://192.168.1.1:8080/svc/version'
) works fine, so it's not a same-origin issue.
References: grunt-contrib-qunit, PhantomJS, grunt-lib-phantomjs, SO "Proxy in PhantomJS"
node.js - AJAX リクエストの QUnit と PhantomJS のテストは、プロキシ経由でのみ機能します
grunt-contrib-qunit
Windows 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 セキュリティを無効にして、クロスドメイン リクエストを通過できるようにすることだけでした。
gruntjs - Grunt qunit が失敗する
以下のように、qunit タスクを grunt に設定しました。
jsHint は正常に動作しています。しかし、qunitを使用するとエラーが発生します:
「qunit:ac」(qunit) タスクを実行中 警告:「in」演算子を使用して「src」を検索することはできません
javascript - QUnit テストで PhantomJS viewportSize を設定する
さまざまなビューポート サイズでスクリプトをテストする必要があります。私のテストでは、page.viewportSize を設定して PhantomJS のビューポート サイズを変更したいと考えています。grunt-contrib-qunit を使用してテストを実行していますが、テスト コードで PhantomJS にアクセスできません。それにアクセスする方法はありますか?
javascript - 失敗しても特定のタスクを継続する
特定の後続のタスク (バッチ全体で --force は必要ありません) が失敗しても実行されるように、一連のタスクを構成する方法はありますか? たとえば、このようなケースを考えてみましょう
- いくつかの一時ファイルを作成します
- これらの一時ファイルを含むいくつかの単体テストを実行します
- これらの一時ファイルをクリーンアップします
私がすることができます:
ただし、qunit が失敗した場合、removeTempFiles タスクは実行されません。
phantomjs - PhantomJS、Qunit、Grunt のテスト ブラウザーのウィジェットのサイズ変更
jQuery UI Widget
DIV/物のサイズを変更してブラウザー画面を埋める を作成しました。unit tests
すべて正常に動作しますが、サイズ変更や境界の維持などをテストするために作成したいと思います。
Grunt
withgrunt-contrib-qunit
を使用しています。これPhantomJS
はテストを行うために使用しますが、JS を介してブラウザーのサイズを変更することはできないため、この時点でブラウザーのサイズ変更をテストする方法がわかりません。おそらく、PhantomJS は実行時に変更できるものを提供しているでしょうか?
javascript - Qunit テスト プロパティがオブジェクトに存在する
Qunit
JavaScript でテスト エンジンを使用しており、オブジェクトにプロパティが存在するかどうかを確認する必要があります。
これが私のセットアップです:
この関数は、成功validate_foo()
すると空のオブジェクトを返すか、各エラーのプロパティを持つオブジェクトを返します。{}
たとえば、validate_foo()
equalsとfoo
equalfoo
を期待します。したがって、2 番目のテストでは、結果は次のようになります。bar
bar
これを達成するためのテストをどのように書くのですか?
gruntjs - grunts grunt-contrib-qunit で実行された qunit テストは、デフォルトのテスト フォルダーの外で失敗します
qunit テストを実行できる唯一の場所は、 https://github.com/gruntjs/grunt-contrib-qunitのこの情報に従って、html および js ファイルが grunt-contrib-qunit\test フォルダー内にある場合です。
プロジェクト ルートの一部として "tests" フォルダーがあるなど、そのテスト フォルダーの外にあるものはすべて機能しません。
デバッグ モード (grunt qunit:defaultTests --debug) で実行すると、phantomJS がタイムアウトし、「onResourceRequested」に qunit css または js ファイル、または js ファイル テストが含まれていないことがわかります。html ファイルについてのみレポートします。
contrib-qunit\test フォルダーを使用せずにこれを設定する方法、またはそのフォルダー内のファイルしか実行できないため、どのような変更を加える必要があるかを教えてください。
jquery - ログステートメントで Gruntfile.js をデバッグするには?
私の Gruntfile では、次の例のように、その処理にログ ステートメントをどのように追加できますか?