動的なメタデータの使用

テスト ケースに関するメタデータをソース コードに追加できます。

Micro Focus Unit Testing Framework では、テスト ケースにメタデータを追加するために使用できる多数の COBOL フィールドが mfunit.cpy コピーブック内に用意されています。

特定のテスト ケースに関連するメタデータについては、MFU-TC-METADATA-SETUP-PREFIX & test-case-name エントリ ポイント内で COBOL フィールドを設定します(レベル 78 定数を使用できない場合は、代わりに "MFUM_test-case-name" というエントリ ポイント名を使用します)。このエントリ ポイントは、テスト ケースの準備段階で呼び出されます。

テスト スイート内のすべてのテスト ケースに関連するメタデータについては、MFU-GLOBAL-METADATA-PREFIX & program-name エントリ ポイント内で COBOL フィールドを設定します(レベル 78 定数を使用できない場合は、代わりに "MFUGM_program-name" というエントリ ポイント名を使用します)。このエントリ ポイントは、どのテスト ケースよりも先に呼び出されます。

テスト スイートからテスト フィクスチャ ファイル (.mfu ファイル) を生成すると、テスト ケース内および [global] セクションでメタデータを参照できます。

テスト ケース固有メタデータおよびグローバル メタデータのエントリ ポイントを設定するには、次の COBOL フィールドを使用します。

COBOL フィールド 説明 テスト フィクスチャ (.mfu) ファイルのタグ
MFU-MD-TESTCASE-DESCRIPTION テスト ケースの説明 description
MFU-MD-TIMEOUT-IN-MS
テスト ケースを実行する期限 (ミリ秒)。タイムアウトになると、0 以外の戻りコードが返されます。このタイムアウトは、3 秒以上に設定する必要があります。
注: テストでタイムアウトを使用する場合は、UNIX プラットフォームでいずれかのスレッド テスト ランナー (cobmfurun32_t または cobmfurun64_t) を使用して実行する必要があります。
timeout
MFU-MD-TRAITS テスト ケースのトレイト。トレイトに基づいてテスト ケースを実行できます。指定したトレイトが割り当てられていないテストは実行時にスキップされます。
ヒント: 必要に応じて、複数のトレイトをカンマで区切って追加できます。
traits
MFU-MD-SKIP-TESTCASE テスト ケースをスキップします。 skipped
MFU-MD-TESTCASE-PRIORITY テスト ケースの優先度を指定します。指定できる値は次のとおりです。
  • MFU-MD-TESTCASE-PRIORITY-HIGH
  • MFU-MD-TESTCASE-PRIORITY-MEDIUM
  • MFU-MD-TESTCASE-PRIORITY-LOW
注: 優先度が指定されていないテスト ケースは、優先度が指定されたすべてのテスト ケースが実行された後に実行されます。
priority
MFU-GLOBAL-COMMANDLINE-ARG テスト実行にテスト ランナーの引数を適用します。このフィールドは、MFU-GLOBAL-COMMANDLINE-PREFIX エントリ ポイントで使用します。
注: このフィールドの長さは 128 文字に制限されます。
various
MFU-MD-TESTDATA データ駆動型テストに適用されます。このオプションでは、データ駆動型テストのデータ ソースを指定できます(現在、カンマ区切り値形式のデータ ソースのみがサポートされています)。

次に例を示します。

move "csv:payroll.csv" to MFU-MD-TESTDATA

data-source
MFU-MD-DD-CSV-FILT-COND データ駆動型テストに適用されます。このオプションでは、テスト ケースで使用するデータ ソースのデータをフィルター処理できます。ソース内のデータ行を選択または無視する条件を指定します。

次に例を示します。

move "column_name condition data-value" to MFU-MD-DD-CSV-FILT-COND

詳細は次のとおりです。

column_name
データ ソース内の列ヘッダーの名前。
condition
次のいずれかを指定できます。
  • =
  • !=
  • contains
  • !contains
data-value
フィルターの基準となる値。
ds-csv-filter-condition
MFU-MD-DD-DSV データ駆動型テストに適用されます。このオプションでは、データ ファイルの区切り文字を指定できます(デフォルトでは、区切り文字はカンマです)。

たとえば、セミコロンを使用するには次のように指定します。

move ";" to MFU-MD-DD-DSV

ds-csv-separator
MFU-MD-JCL-FILE-NAME サブミットする JCL ジョブ カードのファイル名。 jcl-filename
MFU-MD-JCL-COND-TYPE ジョブが終了した理由。
MFU-MD-JCL-COND-CODE ジョブの結果の戻りコード。
MFU-MD-JCL-JOB-NBR JCL ジョブ番号。
MFU-MD-JCL-TESTCASE-PASSED テスト ケースが成功したか失敗したかを示すメタデータ。テストに合格したとマークするには true に、失敗したとマークするには false に設定します。

次に例を示します。

set MFU-MD-JCL-TESTCASE-PASSED to true
MFU-MD-JCL-COPY-DD

JCL ジョブの実行および結果に関する出力ファイルを生成します。ジョブでテスト アサーションを行う場合、このメタデータは必須です。デフォルトは true です。

テストで出力を使用する方法の例については、「JCL テスト ケースの例」を参照してください。

es-show-dd
MFU-MD-JCL-FLUSH-JOB 完了したジョブをスプール キューからフラッシュするかどうかを示します。テストの完了時にフラッシュするには true に、ジョブをキュー内に保持するには false に設定します。 es-flush-job