問題タブ [doh]
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.
javascript - DOH を使用して一連の非同期関数呼び出しをテストすることは可能ですか?
doh.Deferredを使用して、次の一連のイベントをチェックするテストを作成しようとしています。
- ユーザー A でログイン (非同期)
- ログアウト (同期)
- ユーザー A でログイン (非同期)
2 番目のコールバック関数の戻り値は、別の doh.Deferred オブジェクトです。d のコールバック チェーンは d2 を待機するという印象を受けましたが、そうではありません。テストは d2.callback が呼び出される前に終了します。
ここでどこが間違っていますか?
この動作をテストするためのより良い方法を知っている人はいますか?
unit-testing - Dojo DOHはどうなりましたか?
Dojo Toolkit には、「Doh」と呼ばれるテスト機能が付属していました。/utils ディレクトリにありました。
dojo-release-1.3.2 をダウンロードすると、/utils ディレクトリーがどこにも見つかりません。
ドーは死んでしまったのですか?
dojo - クロスドメイン ビルドをローカルでテストする方法は?
Dojo ツールキットを使用して、クロスドメインとして実行されるコードを実際のビルドを行わずにローカルでテストする適切な方法は何ですか?
ご覧のとおり、3 つのオプションが考えられます(それぞれに欠点があります)。
- ローカル (非 xd) XMLHttpRequest dojo.require の使用
- このオプションは、XHR を介して同期的に js を dojo.require[s] するため、実際には xd の動作をテストしません。
- djConfig.debugAtAllCosts = true;
- このオプションは必要なコードを (「script」タグを介して) 非同期的にロードしますが、XHR を介してコードを取り込み、その中の dojo.require[s] を解析して取り込みます。これは (loader_debug を使用して)、繰り返しますが、これは loader_xd が行っていることではありません。このトピックの詳細については、別の質問を参照してください。
- クロスドメイン ビルドの作成
- このアプローチにはビルドが必要ですが、コードを実行している環境では不可能です (特定のページに必要な js のみを含む独自のオンザフライ ビルド プロセスを使用しています。これはプロセスは開発には適していません)。
したがって、私の質問: xd ビルド (すべてのファイルに xd プレフィックス/サフィックスを追加する) を必要としない loader_xd を使用する方法はありますか?
2 番目の方法 (debugAtAllCosts を使用) も、dojo.require[s] を事前解析する動機に疑問を投げかけます。loader_xd が事前解析しない (またはできない) 場合、テスト/デバッグ用に作成されたメソッドがそうするのはなぜですか?
javascript - Dojo ルート外の JavaScript 関数の DOH コマンド行テスト
コマンドラインから単純な Javascript 関数をテストするために、dojo-1.3.2 から DOH を実行しようとしています。しかし、何も実行できないようで、ネットには DOH コマンドライン ドキュメントがないようです。
理想的には、私が望む構造は次のとおりです。
テストは次の場所にあります: C:\myproject\tests\
Dojo 常駐: C:\dojo-1.3.2\util\doh
今のところ、簡単なテストを ..\doh\tests に入れました
..\doh ディレクトリで実行してみます:
java -jar ..\shrinksafe\js.jar runner.js testModule=tests.module
私が得るたびに:
js: キャッチされない JavaScript ランタイム例外: ReferenceError: "window" is not defined ed. 例外が発生しました: エラー: 'tests.module' を読み込めませんでした。最後に 'tests/module.js' を試行しました 0 グループで実行する 0 テスト
私がやり残したことで、私がしなければならないことはありますか?dojoUrl= を使用して dojo.js ファイルを指定しようとしましたが、それでも同じエラーが発生します。
私のテストを見る限り、ウィンドウはどこにも使用されていません。私は3つのファイルを持っています:
tests/module.js
テスト/関数/functions.js
tests/demoFunctions.js
また、../dojo-1.3.2/ にテストが含まれるようにディレクトリーを再構築しようとしました。コマンドプロンプトから上記と同じコマンドを実行すると、同じように失敗します。ディレクトリ構造:
javascript - Doh で Dojo 以外の JavaScript コードをテストするにはどうすればよいですか?
doh は Dojo の単体テスト フレームワークです。doh を使用して Dojo 以外の JavaScript コードをテストしようとしていますが、doh が邪魔に見えるという問題に直面しており、テスト済みの js ファイル (および対応する dojo.require() 内) で dojo.provide() を使用する必要があります。テスト js ファイル)。テスト済みの js ファイルを変更せず、dojo に依存しないようにしたいと考えています。出来ますか ?
dojo - ポップアップ メッセージによって中断される DOH ロボット テストの自動化
ビルド プロセス中に DOH テストを自動化するために、Selenium RC を使用して、ビルド マシンとは別のドメインに配置されたサーバーでさまざまなブラウザー (IE および Firefox) を起動します。DOH を開始するために、各ブラウザーは runTests.html に誘導されます。
doh.robot を使用するテストが開始されると、次のメッセージが表示されることがあります。
「DOH は、現在の Web ページが DOH にアクセスしようとしていることを検出しましたが、DOH の自動化に同意したドメインとは異なるドメインに属しています。この Web ページにアクセスして新しい DOH テストを開始するつもりがない場合は、[キャンセル] を押してください。今すぐ Web ページを離れてください。」
しかし、これらのテストは無人であるため、誰かが [OK] をクリックするのを待っているだけで、Selenium がタイムアウトします (IE 8 では、ポップアップが自動的に消えるように見えますが、ロボットはその後何もしません)。
私が言ったように、それは常に起こるわけではありません。ポップアップで [OK] をクリックすると、メッセージの表示が停止し、数回のセッションでメッセージが表示されなくなりますが、その後、任意の方法で再び表示されます。
このポップアップが表示されないようにする方法を知っている人はいますか?
javascript - Jenkinsを介してDojoDOHユニットテストを実行する方法は?
Dojo DOHユニットテストをJenkinsと統合しようとした人はいますか?
私は次のことをしたいのですが、これがすでに行われている場合は、それを再発明したくありません。だから、私は考えています:
- Jenkinsのビルド後のステップからDOHテストを開始し、結果を待ちます
- ヘッドレスブラウザ(Crowbarなど)でテスト自体を実行します
- Crowbarによって返されたHTMLから成功/エラーカウントを解析します
- (a)失敗したテストがある場合にビルドに失敗し、(b)テスト結果をレンダリングし、(c)結果をCIゲームプラグインに統合するJenkinsプラグインを検索(または書き込み)します
質問:
- これは以前に行われたことがありますか?
- 上記の概要に問題はありますか?
- 役立つJenkinsプラグインを知っていますか、それとも自分でプラグインを作成する必要がありますか?
javascript - 前のインスタンスを実行した後、ロボットを使用できません
私は最新の Dojo コードを入手して、DOH ロボットをいじりました。dojo/dijit/dojox/util パッケージの正確なコピーを 2 つインストールしました。1 つはサーバーのルート レベルに、もう 1 つは /js/ の下にあります。
次に、次の場所に別のコピーを作成します。
http://localhost/util/doh/tests/Robot.htmlに移動すると 、DOH ロボットが正常に初期化され、すべてが実行されます (マウスの動き、テストのパスなど)。
同じことを /js フォルダーでのみ実行しようとすると (たとえば、 http://localhost/js/util/doh/tests/Robot.html )、ほとんどの場合にエラーが発生します。
場合によっては、ロボットが正常にロードされ、すべてのテストに合格することがあります。ロボットを使用する許可を求める Java ポップアップが表示されることがあります (これが発生すると、doh.robot を使用できないというエラーが表示されます)。
何がこれを引き起こしているのか、またはこれが起こらないようにするためのヒントはありますか?
私は次のことを試しました(さらに、これらの手順のすべての組み合わせを試しました):
- Firefox の設定をクリア (ctl+shif+del、すべてチェック)
- f5、ctl+f5
- Javaプロセスを強制終了します
- ブラウザを再起動します
- サーバーを再起動します
- コンピュータを再起動します
- すべての異なるブラウザを試しましたが、同じ結果でした
- DOHRobot.jar を再コンパイル/再署名しました
本当にイライラするのは、以前に問題なく動作するのを見たことがあるので、Java とプラグインが正しくインストールされていることを知っていることです。
いつでもトップ レベルに戻って、ロボットを正常に実行できます。この問題は、/js/ ディレクトリにいるときにのみ発生します。
どんなヒントも素晴らしいでしょう!ありがとう
編集今はうまくいくと思います。問題は、ロボットを再コンパイルしていたのに、JAR に正しく署名していなかったことです。(コンパイル時に .bat ファイルを確認し、上のディレクトリでキーストアがどのように検索されるかに注意してください。キーストアを作成していたときに、デフォルトのユーザー ディレクトリに保存されました。) Java コードを変更していませんでしたが、 、JAR はまだ正しく署名されていませんでした。また、誰かがこれを行う場合、私が含めるのを忘れていた 1 つのステップは、Java キャッシュをクリアすることでした! それがどれほど重要かはわかりません。
とにかく、これは解決したと思います。私も問題を正確に説明していなかったようです。
dojo - mstest 内で Dojo DOH テストを実行する
MSTest フレームワーク内で dojo DOH テストを実行する必要があります。これまでのところ、Stephen Walter からのリンクを除いて、有用なリンクは見つかりませんでした。要件は、テストを jscript に読み込まないようにすることです。いくつかのテストでは、私が推測しているブラウザ インスタンス内で実行する必要があります。
アドバイスをいただければ幸いです
doh - DOH テストを同期的に実行するにはどうすればよいですか?
この問題の解決策を見つけるのを手伝ってくれる人はいますか。私は(仮定して)3つのdoh関数を持っています.1つ目は非同期で、残りは同期です。最初に非同期関数を呼び出す必要があり、この関数の結果を他の 2 つの関数に渡すことは可能ですか?
例 :
どんな助けでも素晴らしいでしょう。