次の方法で共有


方法: データ ドリブンのコード化された 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 テストを作成するには

  1. [ソリューション エクスプローラー] では、コード化された UI テスト プロジェクトを含む開き、編集するコード化された UI テストをソリューションを開きます。

  2. テスト メソッドの上の行のコードの 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"]
    
  3. ソリューション エクスプローラーで、CodedUITest1.cs ファイルを開きます。CodedUITestMethod1() メソッドに対して、次の変更を行います。

    1. AddTwoNumbers メソッドを呼び出す前に次のコードを 2 行追加して、追加する番号の値を入力します。

      this.UIMap.AddTwoNumbersParams.TextInput1EditText = 
          TestContext.DataRow["Input1"].ToString();
      this.UIMap.AddTwoNumbersParams.TextInput2EditText = 
          TestContext.DataRow["Input2"].ToString();
      
    2. 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();
      }
      
  4. CodedUITest1.cs ソース コード ファイルへの変更を保存します。

  5. コード化された UI テストを実行するには、コード エディターでコード化された UI テストを右クリックし、[Run Unit Tests] を選択します。

    テストを実行した後、[テスト結果] ウィンドウに、すべてのイテレーションの全体のテスト結果が表示されます。各イテレーションの詳細を確認するには、[テスト結果] ウィンドウでテストをダブルクリックします。

ガイダンス

追加情報については、Visual Studio 2012 –の章の 2 番目の一連の配信のためのテスト: 単体テスト: 内部のテスト " "を参照してください Visual Studio 2012 –の章の 5 番目の一連の配信のためのテスト: システム テストの自動化

参照

関連項目

UIMap

Assert

概念

コード化されたユーザー インターフェイス テストを使用したコードの検証

コード化された UI テストのベスト プラクティス

コード化された UI テストと操作の記録でサポートされている構成とプラットフォーム

その他の技術情報

コード化された UI テストの作成