次の方法で共有


データ ドリブン テストを実行する

TAEF での DataDrivenTests の実行に関するヒントとコツについて開始する前に、データドリブン テストを作成する方法と TAEF でテストを実行する方法を理解していることを確認してください。 選択クエリが TAEF でどのように機能するかについて、改めて確認しておくことも役立つかもしれません。

このセクションでは、テーブル ベースのデータドリブン テストを実行する方法について具体的に説明しますが、PICT ベースのテストと WMI ベースのデータドリブン テストにも同じ基本原則が適用されます。

データ ドリブン テストを含むすべてのテストを実行するだけの場合は、TAEF を使用して通常実行する方法となんら違いはありません。 TAEF を使用して CPP\DataDrivenExampleCSharp\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

すべてのメソッド (データドリブンとそうでないもの) を、さまざまなレベルで利用可能であり、指定されているメタデータとデータ値とともに一覧表示します。

行レベルでのメタデータのオーバーライド」、「配列パラメーター型の指定」、「単純なデータドリブンの例」を参照して、より詳しいインサイトを得られるチュートリアルの例をご確認ください。