方法: データ ドリブンのコード化された UI テストを作成する
アプリケーションのユーザー インターフェイス (UI) が正しく機能するかどうかをテストする コード化された UI テストを 作成できます。コード化された UI テストによって、アプリケーションのユーザー インターフェイス コントロールで操作が実行され、指定されたコントロールが正しい値で表示されることが検証されます。コード化された UI テストを作成する方法の詳細については、「コード化された UI テストの作成」を参照してください。
要件
- Visual Studio Ultimate, Visual Studio Premium
指定されたデータを使用してコード化された UI テストを作成した後、コード化された UI テストを異なるデータのセットを使用して複数回実行し、さまざまな条件をテストできます。これを行うには、データ ソースからパラメーター値を追加して、データ ドリブンのコード化された UI テストを作成します。データ ソース内の各行は、コード化された UI テストのイテレーションです。テストの総合結果は、すべてのイテレーションの結果に基づいています。たとえば、1 つのテスト イテレーションが失敗すると、テスト全体の結果は失敗します。
コード化された UI テストのメソッドまたはアサーションを記録することで生成すると、記録されたメソッド内で参照されているすべての定数がパラメーター クラスにパラメーター化されます。たとえば、AddTwoNumbers という名前のメソッドを追加した場合、コード化された UI テスト フレームワークは AddTwoNumbersParams という名前の別のクラスを生成し、メソッドの記録時に使用した各定数値のこのクラスにフィールドを追加します。AssertForAdd という名前のアサーション メソッドを生成した場合、フレームワークは、必要となる値に対して AssertforAddExpectedValues という名前のクラスを追加します。これらのクラスは自動的に生成され、以下の手順で使用されます。
テストのソース・コード ファイル (ie..CodedUITest1.cs) へのパラメーターのデータ ソースを使用できるようにするためのすべての変更は行なわれます。UIMap.Designer.cs ファイルのコードは変更できません。
コード化された UI テストを作成したら、以下の手順に従って、データ ソースとパラメーターをテストに追加できます。この例は、ソリューションに次のコード要素があることを前提としています。
CodedUITest1. という名前のコード化された UI テスト クラス
CodedUITestMethod1(). という名前のテスト メソッド
このテスト メソッドは、2 つの数値を加算する単純な計算アプリケーションを対象としており、2 つの数値が正しく加算され、このテストが成功したことを検証します。
データ ソースは、次のデータが含まれる .csv ファイルです。
Input1 |
Input2 |
ExpectedResult |
---|---|---|
3 |
4 |
7 |
5 |
6 |
11 |
1200 |
24000 |
25200 |
ファイルを作成し、コード化された UI テスト プロジェクトに追加します。
データ ドリブンのコード化された UI テストの作成
データ ドリブンのコード化された UI テストを作成するには
[ソリューション エクスプローラー] では、コード化された UI テスト プロジェクトを含む開き、編集するコード化された UI テストをソリューションを開きます。
テスト メソッドの上の行のコードの DataSource 属性を直接、すばやく挿入します。次の表に、コードにコピーして、サンプル データ ソースの文字列を使用し、必要なカスタマイズを行うことができます。
日付のソースの種類
データ ソースの属性
CSV
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\data.csv", "data#csv", DataAccessMethod.Sequential), DeploymentItem("data.csv"), TestMethod]
Excel
DataSource("System.Data.Odbc", "Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};dbq=|DataDirectory|\\Data.xls;defaultdir=.;driverid=790;maxbuffersize=2048;pagetimeout=5;readonly=true", "Sheet1$", DataAccessMethod.Sequential), TestMethod]
Team Foundation Server のテスト ケース
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.TestCase", "http://vlm13261329:8080/tfs/DefaultCollection;Agile", "30", DataAccessMethod.Sequential), TestMethod]
XML
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\data.xml", "Iterations", DataAccessMethod.Sequential), DeploymentItem("data.xml"), TestMethod]
SQL Express
[DataSource("System.Data.SqlClient", "Data Source=.\\sqlexpress;Initial Catalog=tempdb;Integrated Security=True", "Data", DataAccessMethod.Sequential), TestMethod]
これで、このテスト メソッドでデータ ソースを使用できるようになります。TestContext.DataRow を使用すると、データ ソースからデータの現在の行にアクセスできます。各行にアクセスするには、次の構文を使用します。
string paramVal = TestContext.DataRow["Input1"]
ソリューション エクスプローラーで、CodedUITest1.cs ファイルを開きます。CodedUITestMethod1() メソッドに対して、次の変更を行います。
AddTwoNumbers メソッドを呼び出す前に次のコードを 2 行追加して、追加する番号の値を入力します。
this.UIMap.AddTwoNumbersParams.TextInput1EditText = TestContext.DataRow["Input1"].ToString(); this.UIMap.AddTwoNumbersParams.TextInput2EditText = TestContext.DataRow["Input2"].ToString();
AssertforAdd メソッドを呼び出す前に次のコードを追加して、Assert メソッドの値を入力します。
this.UIMap.AssertforAddExpectedValues.TextAnswerEditText = TestContext.DataRow["ExpectedResult"].ToString();
コード化された UI テスト メソッドは、パラメーターとデータ ソースを追加すると次のようになります。
[DeploymentItem("DataDriven.csv"), DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\DataDriven.csv", "DataDriven#csv", DataAccessMethod.Sequential), TestMethod] public void CodedUITestMethod1() { // To generate code for this test, select "Generate Code for // Coded UI Test" from the shortcut menu and select one of // the menu items. this.UIMap.AddTwoNumbersParams.TextInput1EditText = TestContext.DataRow["Input1"].ToString(); this.UIMap.AddTwoNumbersParams.TextInput2EditText = TestContext.DataRow["Input2"].ToString(); this.UIMap.AddTwoNumbers(); this.UIMap.AssertforAddExpectedValues.TextAnswerEditText = TestContext.DataRow["ExpectedResult"].ToString(); this.UIMap.AssertforAdd(); }
CodedUITest1.cs ソース コード ファイルへの変更を保存します。
コード化された UI テストを実行するには、コード エディターでコード化された UI テストを右クリックし、[Run Unit Tests] を選択します。
テストを実行した後、[テスト結果] ウィンドウに、すべてのイテレーションの全体のテスト結果が表示されます。各イテレーションの詳細を確認するには、[テスト結果] ウィンドウでテストをダブルクリックします。
ガイダンス
追加情報については、Visual Studio 2012 –の章の 2 番目の一連の配信のためのテスト: 単体テスト: 内部のテスト " "を参照してください Visual Studio 2012 –の章の 5 番目の一連の配信のためのテスト: システム テストの自動化
参照
関連項目
概念
コード化されたユーザー インターフェイス テストを使用したコードの検証
コード化された UI テストと操作の記録でサポートされている構成とプラットフォーム