WMQTest インターフェース
IBM® MQ Explorer 用に作成されたテストは、提供された WMQTest クラスを拡張する Java クラスに属している必要があります。 このトピックでは、提供されたメソッドのインターフェースおよび操作について説明します。
テストの属性
属性のコレクションを使用して、プラグイン・マニフェスト・ファイル (plugin.xml) でテストを定義します。 以下の表にテストの属性をリストします。
属性 | 説明 |
---|---|
ID | テストの固有 ID を提供するストリング |
名前 | 分かりやすいテスト名 |
クラス | テストのソース・コードを含む Java クラスの名前 |
testset | テストを表示するグループを定義するストリング。以下に例を示します。wmq「キュー・マネージャー・テスト」 カテゴリーのテストが表示されます。 |
testsubset | テストを表示するサブグループを定義するストリング。以下に例を示します。queues「キュー」 カテゴリーにテストが表示されます。 |
description | テストの処理内容を説明する簡略説明。 |
furtherinfo | テストの詳細を含む HTML 文書または XHTML 文書の場所。 この文書は、「テストの実行」ダイアログでテストをダブルクリックするか、「テスト結果」ビューでテスト結果をダブルクリックすると、 IBM MQ Explorer に表示されます。 |
plugin.xml ファイル内でこれらの属性の値を指定することにより、テストを定義します。 また、以下の表にリストされた WMQTest メソッドを使用して、これらの属性にプログラマチックにアクセスすることもできます。
メソッド | 説明 |
---|---|
getTestID() |
テスト ID を戻します。 |
getTestName() |
テストの名前を戻します。 |
getDescription() |
テストの説明を戻します。 |
getTestSet() |
テストの親となるように作成されたテスト・セット・オブジェクトにハンドルを戻します。 |
getFurtherInfoPath() |
テストの詳細を含む XHTML 文書または HTML 文書の場所を戻します。 |
テストの作成
IBM MQ Explorer テスト・エンジンは、提供されたコンストラクター WMQTest()
を使用してテスト・オブジェクトをインスタンス化します。 このコントラクターのサブクラスを作成する必要はありません。
テストの構造
WMQTest
メソッド runTest
は、テストの本体を定義し、テストの実行を開始するために呼び出されます。
runTest
メソッドの終わりは、テストの終わりを意味するものではありません。testComplete
メソッドを使用して、テストの終わりを明示的に指定する必要があります。 オブジェクト・データが非同期に取得されるようにテストをインプリメントすることができます。
runTest
メソッドは、オブジェクトに関するデータを取得する要求を送信し、応答を受信するリスナー・メソッドからテストを実行します。 これにより、スレッド待機を実装する必要なしに、テストでデータを待機できるようになります。これは、 サンプル 3に示されています。
テストの一部として手動待機 (スリープ) が必要な場合は、テスト・オブジェクトのオブジェクト・モニターを使用して、Java wait
メソッドおよび notify
メソッドを使用できます。 テスト・エンジンのスレッド化は、個別のテスト・オブジェクトのオブジェクト・モニターを使用せずにインプリメントされます。
テストの実行
IBM MQ Explorer テスト・エンジンは runTest(WMQTestEngine, IProgressMonitor,contextObjects, treeNode)
を呼び出して、テストの実行を開始します。 テストの本体はここになくてはなりません。
- WMQTestEngine
- WMQTestEngine パラメーターは、テストを実行するテスト・エンジンのハンドルを提供します。
これは、テスト・エンジンの
returnResult(WMQTestResult[], WMQTest)
メソッドを使用して、テストの進行中にテストが結果を返すことができるようにするために用意されています。このメソッドの最初のパラメーター (
WMQTestResult[]
) には返される結果が含まれ、2 番目のパラメーター (WMQTest
) は「this
」でなければなりません。これにより、テスト・エンジンは結果の取得元を認識できます。 WMQTestEngine パラメーターを使用して中間結果を返すのはオプションです。テストの完了時にテスト結果を返すこともできます (テストの完了を参照)。 - IProgressMonitor
- IProgressMonitor パラメーターは、現在のテスト実行に使用されている GUI フィードバック・モニターのハンドルを提供します。 これにより、テストで、現在実行中のタスクとサブタスクについてのテキストによるフィードバック、および完了分を示す進行状況バーを表示することができます。
進捗モニターのハンドルは、
runTest
のデフォルト実装によってキャッシュされるため、これが使用されている場合は、WMQTest メソッドgetGUIMonitor()
を使用して進捗モニターのハンドルにアクセスすることもできます。進捗モニターは、Eclipse のコア・リソースです。 使用に関する詳しいアドバイスについては、Web 上の Eclipse API 資料 を参照してください。
- contextObjects
- contextObjects パラメーターは、MQExtObject 配列を提供します。 このパラメーターでは、実行するテストの内容を提供し、ユーザーが「テストの実行」ダイアログを開くときに関連するチェック・ボックスが事前選択されるようにします。
- treeNode
- treeNode パラメーターは、デフォルトのテストを実行するため、または「テストの実行」ダイアログを開くために、Navigator ビュー内のどのフォルダーまたはオブジェクトがクリックされたかを記録します。
ユーザー設定
テストは、Eclipse の「設定」ダイアログを使って提供されるユーザー設定に準拠していなければなりません。 設定にアクセスするには、次のメソッドを使用します。
PreferenceStoreManager.getIncludeHiddenQmgrsPreference()
は、IBM MQ Explorer で非表示になっているキュー・マネージャーをテストに含める場合はtrue
を返し、除外する必要がある場合はfalse
を返します。PreferenceStoreManager.getIncludeSysObjsPreference()
は、システム・オブジェクト (SYSTEM で始まる名前を持つオブジェクト) をテストに含める含める必要がある必要がある場合はtrue
を返し、 除外する必要がある場合はfalse
を指定します。
テストの完了
testComplete(WMQTestResult[])
を呼び出してテストを完了し、テスト結果オブジェクトの配列を渡します。 テスト結果オブジェクトのガイダンスについては、 テスト結果の作成 を参照してください。
完了時に結果を返すには、テスト実行中にテスト結果を返す方法 ( テストの実行を参照) に加えて、またはテスト実行中にテスト結果を返す方法の代わりに、この方法を使用できます。 ただし、結果が 2 回戻されると 2 回表示されます。
テストで WMQTestEngine
メソッド returnResult
を使用してすべての結果を返す場合でも、完了時に testComplete
を呼び出す必要があります。 これはテストの処理を完了させるために必要です。 返される新しい結果がない場合は、testComplete
メソッドに WMQTestResult
オブジェクトの空の配列を指定できます。
詳しくは、 テスト構造を参照してください。
テスト結果の作成
テスト結果は、WMQTestResult
オブジェクトとして実装されます。 以下を使用して結果を作成します。
WMQTestResult(int severity、String description、String qmgrname、String objectType)
ここで、
severity
は、問題の重大度を識別する整数です。 重大度レベルIMarker.SEVERITY_ERROR
、IMarker.SEVERITY_WARNING
、またはIMarker.SEVERITY_INFO
のいずれかを使用します。description
は、「問題」ビューに表示される、テストによって検出された問題を説明するストリングです。qmgrname
は、問題が検出されたキュー・マネージャーの名前です。objectType
は、問題が見つかるオブジェクトのクラスを示すストリング (「Queues」や「Channels」など) です。
テスト結果オブジェクトが作成されたときの処理について詳しくは、 テストの完了を参照してください。
取り消しの処理
実行中のテストを取り消すことが可能です。 メソッド isCancelled()
を使用して、テストを停止する必要があるかどうかを検査します。
不必要なユーザー遅延を発生させるのを防ぐために、テストが取り消されたかどうかを定期的に検査するのが適切です。
テストの取り消しを試行しても、長い時間にわたってテストから応答がない場合には、テスト・エンジンは、テストを実行しているスレッドを終了することによってテストを強制的に停止します。 この手法を当てにすべきではありません。 時間をかけてテストが応答することにより、テストが使用していたリソースがクリーンアップされ、それまでに生成されたテスト結果が戻される方が望ましいためです。
テストの文書
戻される結果について説明し、問題解決の方法を示すために、追加の文書を提供することができます。
テストを提供するプラグインの plugin.xml ファイルで指定された場所に、HTML 形式で文書を提供してください。 XML でのテストの定義について詳しくは、 新規テストの作成を参照してください。
文書 HTML ファイルの場所として、以下が可能です。
- 内部 - テスト自体を提供するプラグイン・プロジェクトに保管されます。 plugin.xml ファイル自体からの相対的な場所を、XML の中で定義する必要があります。 例えば doc/TestDoc.html などです。
- 外部 - Web サーバーに保管されます。文書の保守はテストとは別に行われます。 http:// で始まる完全 URL として場所を定義する必要があります。