WMQTest インターフェース

IBM® MQ エクスプローラー用に作成されたテストは、提供された WMQTest クラスを拡張した Java™ クラスに属している必要があります。このトピックでは、提供されたメソッドのインターフェースおよび操作について説明します。

テストの属性

属性の集合を使用して、テストをプラグイン・マニフェスト・ファイル (plugin.xml) に定義します。以下の表にテストの属性をリストします。

属性 説明
id テストの固有 ID を提供するストリング
name 分かりやすいテスト名
class テストのソース・コードを含む Java クラスの名前
testset テストを表示するグループを定義するストリング。 例えば、wmq「キュー・マネージャー・テスト」 カテゴリー内のテストを表示します。
testsubset テストを表示するサブグループを定義するストリング。例えば queues などで、「キュー」 カテゴリー内のテストが表示されます。
description テストの処理内容を説明する簡略説明。
furtherinfo テストの詳細を含む HTML 文書または XHTML 文書の場所。この文書は、「テストの実行」ダイアログでテストをダブルクリックしたとき、またはテスト結果ビューでテスト結果をダブルクリックしたときに IBM MQ エクスプローラーに表示されます。

plugin.xml ファイル内でこれらの属性の値を指定することにより、テストを定義します。 また、以下の表にリストされた WMQTest メソッドを使用して、これらの属性にプログラマチックにアクセスすることもできます。

メソッド 説明
getTestID() テスト ID を戻します。
getTestName() テストの名前を戻します。
getDescription() テストの説明を戻します。
getTestSet() テストの親となるように作成されたテスト・セット・オブジェクトにハンドルを戻します。
getFurtherInfoPath() テストの詳細を含む XHTML 文書または HTML 文書の場所を戻します。

テストの作成

IBM MQ エクスプローラー・テスト・エンジンは、規定されたコンストラクター WMQTest() を使用して、テスト・オブジェクトのインスタンスを作成します。このコントラクターのサブクラスを作成する必要はありません。

テストの構造

WMQTest メソッドの runTest は、テストの本体を定義し、テスト実行を開始するために呼び出されます。

runTest メソッドの終わりにはテストの終わりは暗黙指定されません。testComplete メソッドを使用してテストの終わりを明示的に指定する必要があります。オブジェクト・データが非同期に取得されるようにテストをインプリメントすることができます。

runTest メソッドは、オブジェクトに関するデータを取得する要求を実行依頼し、応答を受け取る listener メソッドからテストが実行されます。これにより、テストでは、スレッドの待機をインプリメントせずにデータを待機することができます。これはサンプル 3 に示されています。

テストの一部で手動の待機 (スリープ) が必要な場合、Javawait および notify メソッドを使用するテスト・オブジェクトのオブジェクト・モニターを使用することができます。テスト・エンジンのスレッド化は、個別のテスト・オブジェクトのオブジェクト・モニターを使用せずにインプリメントされます。

テストの実行

IBM MQ エクスプローラー・テスト・エンジンは、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 エクスプローラーで非表示のキュー・マネージャーをテストに含める場合は 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_ERRORIMarker.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 として場所を定義する必要があります。