How to: Create a Data-Driven Coded UI Test

Sie können einen Test der codierten UI erstellen, der getestet wird, ob die Benutzeroberfläche für eine Anwendung ordnungsgemäß funktioniert.Beim Test der codierten UI werden Aktionen für die Steuerelemente auf der Benutzeroberfläche einer Anwendung ausgeführt, und es wird überprüft, ob die angegebenen Steuerelemente die korrekten Werten anzeigen.Weitere Informationen zum Erstellen eines Tests der codierten UI finden Sie unter Erstellen von Tests der codierten UI.

Anforderungen

  • Visual Studio Ultimate, Visual Studio Premium

Nachdem Sie den Test der codierten UI mit bestimmten Daten erstellt haben, können Sie ihn mehrmals mit jeweils unterschiedlichen Sätzen von Daten ausführen, um unterschiedliche Bedingungen zu testen.Zu diesem Zweck können Sie Parameterwerte aus einer Datenquelle hinzufügen, um einen datengesteuerten Test der codierten UI zu erstellen.Jede Zeile in der Datenquelle ist eine Iteration des Tests der codierten UI.Das Gesamtergebnis des Tests basiert auf dem Ergebnis für alle Iterationen.Wenn z. B. eine Testiteration fehlschlägt, lautet das Gesamttestergebnis "Fehler".

Wenn Sie Methoden oder Assertionen für den Test der codierten UI generieren, indem Sie sie aufzeichnen, werden alle Konstanten, auf die in den aufgezeichneten Methoden verwiesen wird, in Parameterklassen parametrisiert.Wenn Sie z. B. eine Methode mit dem Namen AddTwoNumbers hinzufügen, generiert das Framework für den Test der codierten UI eine weitere Klasse mit dem Namen AddTwoNumbersParams, der für jeden beim Aufzeichnen der Methode verwendeten Konstantenwert ein Feld hinzugefügt wird.Generieren Sie eine Assertionsmethode mit dem Namen AssertForAdd, wird eine Klasse mit dem Namen AssertforAddExpectedValues für die erwarteten Werte generiert.Diese Klassen werden automatisch generiert und in den folgenden Schritten verwendet.

Alle Änderungen am Test, um sie zu ermöglichen, eine Datenquelle für die Parameter verwendet werden an der Quellcodedatei des Tests (IE ..CodedUITest1.cs) vorgenommen.Sie können den Code nicht in der Datei UIMap.Designer.cs ändern.

Nachdem Sie einen Test der codierten UI erstellt haben, können Sie mit den folgenden Schritten dem Test die Datenquelle und die Parameter hinzufügen.In diesem Beispiel wird davon ausgegangen, dass die Projektmappe die folgenden Codeelemente enthält:

  • Eine Klasse für Tests der codierten UI mit dem Namen CodedUITest1.

  • Eine Testmethode mit dem Namen CodedUITestMethod1().

Die Testmethode bezieht sich auf eine einfache Rechneranwendung. Sie fügt zwei Zahlen hinzu und überprüft, ob diese zusammen ordnungsgemäß hinzugefügt werden.

Die Datenquelle ist eine .csv-Datei, die die folgenden Daten enthält:

Input1

Input2

ExpectedResult

3

4

7

5

6

11

1200

24000

25200

Erstellen Sie die Datei und fügen Sie sie dem Test der codierten UI-Projekt hinzu.

Erstellen eines datengesteuerten Tests der codierten UI

So erstellen Sie einen datengesteuerten Test der codierten UI

  1. In Projektmappen-Explorer öffnen Sie die Projektmappe, die für den Test der codierten UI-Projekt enthält und dann den Test der codierten UI zum Bearbeiten.

  2. Fügen Sie das DataSource-Attribut direkt im Code, in der Zeile direkt über der Testmethode ein.Sie können die Beispieldatenquellenzeichenfolgen in der Tabelle unten, indem Sie sie verwenden zum Code kopieren und die erforderlichen Anpassungen vornehmen.

    Datums-Quelltyp

    Datenquellen-Attribut

    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]

    Testfall in 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]

    Die Datenquelle ist jetzt für die Verwendung in der Testmethode verfügbar.Sie verwenden TestContext.DataRow, um auf die aktuelle Datenzeile in der Datenquelle zuzugreifen.Sie können mithilfe der folgenden Syntax auf jede Spalte zugreifen:

    string paramVal = TestContext.DataRow["Input1"]
    
  3. Öffnen Sie im Projektmappen-Explorer die Datei CodedUITest1.cs.Nehmen Sie die folgenden Änderungen an der CodedUITestMethod1()-Methode vor:

    1. Fügen Sie die folgenden zwei Codezeilen vor dem Aufruf der AddTwoNumbers-Methode hinzu, um Werte für die hinzuzufügenden Zahlen bereitzustellen.

      this.UIMap.AddTwoNumbersParams.TextInput1EditText = 
          TestContext.DataRow["Input1"].ToString();
      this.UIMap.AddTwoNumbersParams.TextInput2EditText = 
          TestContext.DataRow["Input2"].ToString();
      
    2. Fügen Sie die folgende Codezeile vor dem Aufruf der AssertforAdd-Methode hinzu, um den Wert für die Assert-Methode bereitzustellen:

      this.UIMap.AssertforAddExpectedValues.TextAnswerEditText = 
          TestContext.DataRow["ExpectedResult"].ToString();
      

      Die Methode für den Test der codierten UI sollte wie folgt aussehen, wenn ihr die Parameter und die Datenquelle hinzugefügt wurden:

      [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. Speichern Sie die Änderungen in der Quellcodedatei CodedUITest1.cs.

  5. Um den Test der codierten UI auszuführen, klicken Sie auf den Test der codierten UI im Code-Editor mit der rechten Maustaste und wählen Sie Run Unit Tests aus.

    Nachdem die Tests ausgeführt wurden, wird das Gesamttestergebnis für alle Iterationen des Tests im Fenster Testergebnisse angezeigt.Um die Details für die einzelnen Iterationen anzuzeigen, doppelklicken Sie im Fenster Testergebnisse auf den Test.

Empfehlungen

Weitere Informationen finden Sie unter Tests für fortlaufende Übermittlung mit Visual Studio 2012 - Chapter 2: Komponententest: Testen des Inneres und Tests für fortlaufende Übermittlung mit Visual Studio 2012 - Chapter 5: Automatisieren von Systemtests

Siehe auch

Referenz

UIMap

Assert

Konzepte

Überprüfen von Code mithilfe von Test der codierten Benutzeroberfläche

Best Practices for Coded UI Tests

Supported Configurations and Platforms for Coded UI Tests and Action Recordings

Weitere Ressourcen

Erstellen von Tests der codierten UI