テスト モード
TAEF には、複数のテスト モードが用意されていて、さまざまな方法でテストの実行動作を変更できます。 このセクションに進む前に、「テストを作成する」と「テストを実行する」を参照して、TAEF 実行の基本を理解しておくようにしてください。
注: テスト モードは相互に互換性がありません。特定のテストの実行中に有効にできるテスト モードは 1 つだけです。
現在 TAEF に用意されているテスト モードは、以下のとおりです。
ループ テスト モード
"ループ テスト モード" では、個々のテスト、または実行するテスト全体を反復するためのシンプルな機能が提供されます。 ループ テスト モードは、テスト自動化の堅牢性を検証したり、簡単なストレスを掛けたり、長時間の自動化を行ったりするのに最適です。
ループ テスト モードを有効にするには、/testmode:loop コマンド オプションを指定します。 他にも、特殊な動作を制御するためのパラメーター (省略可能) が 2 つあります。
/Loop:<loopNum>
テスト全体が実行される回数を制御します (既定値は 1)。
/LoopTest:<loopTestNum>
それぞれのテストが実行される回数を制御します (既定値は 10)。
下の図は、2 つのテスト メソッドがある 1 つのテスト クラスが含まれる 1 つのテスト ファイルで構成されるテストが TAEF で実行されるしくみを表しています。
図の矢印は、TAEF での実行フローを示しています。TAEF がセットアップ フィクスチャを実行し、その後テスト自体を実行し、テストの完了後に適切なクリーンアップ フィクスチャを実行するという流れがわかります。 "looptest" 値を指定すると、TAEF はテスト メソッド自体を、可能な限り最小の範囲で反復処理します。 ただし、テストのセットアップとクリーンアップは実行されません。 データ ドリブン テストでも動作は同じです。"looptest" 値は、"Test Method" レベルでループを制御します。
テスト メソッドだけをループできない場合があります。そのようなときには、"loop" パラメーターを使用します。 下の図は、2 つのテスト ファイル (それぞれのファイルが 1 つのテスト クラスを含み、それぞれのテスト クラスが 1 つのテスト メソッドを含むもの) で構成されるテストが、TAEF でどのように実行されるのかを表しています。
"loop" パラメーターは、可能な限り最大の範囲 (実行全体) でループを制御します。 Te.exe に 1 つのテスト ファイルを指定した場合、または複数のテスト ファイルがある場合は、指定した回数だけ実行全体がループされます。
ストレス テスト モード
TAEF の "ストレス" テスト モードでは、ユーザーが "ストレス" 環境でテストを実行できます。 ストレス テスト モードは、"/testmode:stress" コマンド オプションで有効になり、以下の動作が可能になります。
Te.exe を無期限に実行: Te.exe を停止するには、Ctrl + C キーをコマンド プロンプトに送信するか、Te.exe が実行されている非表示ウィンドウに WM_CLOSE メッセージを送信する必要があります。
Te.exe が実行するテストの最初の "グループ" を反復処理: 実行中に後続のファイルを読み込むのを避けるために、Te.exe は実行するテストの最初の "グループ" を反復処理します。 以下の点に注意してください。
- コマンド プロンプトで特に選択条件を指定せずに複数のテスト ファイルを指定した場合は、最初のテスト ファイルのみが実行されます。
- コマンド プロンプトで複数のテスト ファイルと選択クエリを指定した場合は、選択条件を満たす最初のテスト ファイルのテストのみが実行されます。
- モジュール レベルでデータ ドリブンのテスト ファイルを指定した場合は、実行されるデータ ドリブン パラメーターの最初の組み合わせがループされます。
"ストレス ロガー" が有効: ログによって消費されるリソースの量を最小限に抑えるために、Te.exe が最小出力ロガーに切り替わります。
- エラーのみをコンソールに書き込み: 他のログ エントリは書き出されません。
- 60 秒ごとに、ロガーが現在の合格/不合格数をコンソールに出力します。
- ロガーは 1 秒ごとに "." を 1 つ出力し、Te.exe がまだ動作していることを示します。
ストレス テスト モードで実行する場合は、"/inproc" スイッチも指定する必要があります。このスイッチは、すべてのストレス テストが Te.exe プロセスで実行されることを意味します。 この制限により、TAEF がテスト実行のために個別のサンドボックス プロセスを起動して保持する必要がなくなり、メモリ割り当ての失敗によるテスト不合格が最小限に抑えられます。