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
メソッドは、オブジェクトに関するデータを取得する要求を実行依頼し、応答を受け取る listener メソッドからテストが実行されます。 これにより、スレッド待機を実装する必要なしに、テストでデータを待機できるようになります。これは、 サンプル 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 パラメーターは、デフォルトのテストを実行、または「テストの実行」ダイアログを開くためにクリックされたナビゲーター・ビュー内のフォルダーまたはオブジェクトを記録します。
ユーザー設定
テストは、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 として場所を定義する必要があります。