データ ドリブン テストを実行する
TAEF での DataDrivenTests の実行に関するヒントとコツについて開始する前に、データドリブン テストを作成する方法と TAEF でテストを実行する方法を理解していることを確認してください。 選択クエリが TAEF でどのように機能するかについて、改めて確認しておくことも役立つかもしれません。
このセクションでは、テーブル ベースのデータドリブン テストを実行する方法について具体的に説明しますが、PICT ベースのテストと WMI ベースのデータドリブン テストにも同じ基本原則が適用されます。
データ ドリブン テストを含むすべてのテストを実行するだけの場合は、TAEF を使用して通常実行する方法となんら違いはありません。 TAEF を使用して CPP\DataDrivenExample と CSharp\DataDrivenExample を一緒に実行する例を考えてみましょう。 既定では、TAEF はアウトプロセスでテストを実行することにご注意ください。 インプロセスで実行する場合は、"/inproc" スイッチを使用してください。
TE.exe Examples\CPP.DataDriven.Example.dll Examples\CSharp.DataDriven.Example.dll
メタデータを指定する xml ファイルとヘッダー ファイルを見てみましょう。 次のように、優先度が 1 のデータドリブン テストのみを実行します。
TE.exe Examples\*.Tests.dll /select:"@DataSource=* And @Priority=1"
xml ファイルの行レベルで指定されているメタデータは、TestMethod 作成レベルで指定されているメタデータをオーバーライドすることにご注意ください。
TAEF を使用してデータ ドリブン テストを実行する効果について、もう少し確認していきましょう。 たとえば、FirstTable() 関数の 3 番目の行のみを再現したいとします。 これを行うには、行のインデックスになる "2" を使用します (インデックスは 0 から始まります)。
TE.exe Examples\CPP.DataDriven.Example.dll /select:"@Name='*FirstTable*' and @Data:index=2"
選択条件に新しい名前空間の "@Data:" が追加されました。これは、データ ドリブン テスト専用で使用できます。 上記のテストを実行すると、データドリブン テストの場合にテスト名に追加される通常の '#index' の代わりに、テスト名に '#Black' が追加されていることがわかります。これは、この行に指定されている特殊な 'Name' メタデータです。 詳細については、「行レベルでのメタデータの指定」を参照してください。 この特別な名前にもかかわらず、その名前を使用して選択することもできます。 インデックスの選択は、非常に大きなデータ セットの行の範囲を選択する場合にとても役立ちます。 たとえば、100 行 (最大インデックス = 99) のデータ ドリブン テストがあり、10 よりも大きく 20 よりも小さいインデックスを持つ行のみを実行する場合は、次のように簡単に指定できます。
TE.exe Examples\*.Tests.dll /select:"@Name='*MyDataDrivenTest*' and @Data:index > 10 and @Data:index < 20"
多くの場合、特定のデータ値に基づいて再現はしたいものの、インデックスを見つける手間は省きたいと思うでしょう。 この場合は、"@Data:" 名前空間をもう一度使用できます。 次に、単体テストのネイティブな例 (「データドリブン テストの作成」を参照のこと) で、"Theme" が "AeroBasic" の場合にのみ、こうしたケースを実行するとします。
TE.exe Examples\CPP.DataDriven.Example.dll Examples\CSharp.DataDriven.Example.dll /select:"@Data:Theme='AeroBasic'"
これはコンソールで次のように表示されます。
StartGroup: WEX::TestExecution::Examples::DataDrivenTests::SecondTable#2 [Process: 3588; Thread: 4584]
I am in second table.
Theme supplied as AeroBasic
EndGroup: WEX::TestExecution::Examples::DataDrivenTests::SecondTable#2 [Passed]
Summary: Total=1, Passed=1, Failed=0, Blocked=0, Not Run=0, Skipped=0
データドリブン テストの /listproperties を利用してデータ ドリブン テスト用のデータ セットとメタデータ (テスト メソッド レベルで指定されたメタデータと行レベルで指定されたメタデータの組み合わせ) を確認することもできます。 そのため、
TE.exe Examples\CSharp.DataDriven.Examples.dll /listproperties
すべてのメソッド (データドリブンとそうでないもの) を、さまざまなレベルで利用可能であり、指定されているメタデータとデータ値とともに一覧表示します。
「行レベルでのメタデータのオーバーライド」、「配列パラメーター型の指定」、「単純なデータドリブンの例」を参照して、より詳しいインサイトを得られるチュートリアルの例をご確認ください。