Testen von Windows Store-Apps mit Tests der codierten UI
Überprüfen von Windows Store-Apps mit Tests der codierten UI
Erstellen einer einfachen Windows Store-App
Wenn Sie Tests der codierten UI für eine XAML-basierte Windows Store-App ausführen möchten, müssen Sie eine eindeutige Automatisierungseigenschaft zur Kennzeichnung der einzelnen Steuerelemente festlegen.
Zeigen Sie im Menü Tools auf Optionen, und wählen Sie dann nacheinander Text-Editor, XAML und Verschiedenes aus.
Aktivieren Sie das Kontrollkästchen für "Interaktive Elemente beim Erstellen automatisch benennen".
Erstellen Sie mit einer Visual C#- oder Visual Basic-Vorlage ein neues Projekt für eine leere XAML-basierte Windows Store-App.
Öffnen Sie im Projektmappen-Explorer die Datei "MainPage.xaml".Ziehen Sie aus der Toolbox ein Schaltflächen- und ein Textfeldsteuerelement auf die Entwurfsoberfläche.
Doppelklicken Sie auf das Schaltflächensteuerelement, und fügen Sie dann den folgenden Code hinzu:
private void button_Click_1(object sender, RoutedEventArgs e) { this.textBox.Text = this.button.Name; }
Public NotInheritable Class MainPage Inherits Page Private Sub button_Click(sender As Object, e As RoutedEventArgs) Handles Button.Click Me.textBox.Text = Me.button.Name End Sub End Class
Drücken Sie F5, um die Windows Store-App auszuführen.
Erstellen und Ausführen eines Tests der codierten UI für die Windows Store-App
Erstellen Sie einen neues Projekt mit einem Test für codierten UI in der Windows Store-App.
Wählen Sie mithilfe des Fadenkreuztools aus, dass Sie die UI-Zuordnung bearbeiten möchten.
Wählen Sie im Test-Generator für codierte UI mit dem Fadenkreuztool die App-Kachel aus, klicken Sie mit der rechten Maustaste auf AutomationId, und wählen Sie Wert in Zwischenablage kopieren aus.Der Wert in der Zwischenablage wird später beim Schreiben der Aktion zum Starten der App zu Testzwecken verwendet.
Wählen Sie in der ausgeführten Windows Store-App mit dem Fadenkreuztool das Schaltflächen- und das Textfeldsteuerelement aus.Wählen Sie nach dem Hinzufügen jedes Steuerelements auf der Symbolleiste des Test-Generators für codierte UI die Schaltfläche Steuerelement zu UI-Steuerelementzuordnung hinzufügen aus.
Wählen Sie auf der Symbolleiste des Test-Generators für codierte UI die Schaltfläche Code generieren und dann Generieren aus, um Code für Änderungen an der UI-Steuerelementzuordnung zu erstellen.
Wählen Sie die Schaltfläche aus, um im Textfeld einen Wert festzulegen.
Wählen Sie das Textfeldsteuerelement mit dem Fadenkreuztool aus, und wählen Sie dann die Text-Eigenschaft aus.
Fügen Sie eine Assertion hinzu.Diese wird beim Test verwendet, um die Richtigkeit des Werts sicherzustellen.
Generieren Sie Code für die Assertion, und fügen Sie diesen hinzu.
Visual C#
Öffnen Sie im Projektmappen-Explorer die Datei "UIMap.Designer.cs", um den hinzugefügten Code für die Assert-Methode und die Steuerelemente anzuzeigen.
Visual Basic
Öffnen Sie im Projektmappen-Explorer die Datei "CodedUITest1.vb", klicken Sie im Code der CodedUITestMethod1()-Testmethode mit der rechten Maustaste auf die Assertionsmethode, die automatisch Me.UIMap.AssertMethod1() hinzugefügt wurde, und wählen Sie Gehe zu Definition aus.Hierdurch wird die Datei "UIMap.Designer.vb" im Code-Editor geöffnet, um den hinzugefügten Code für die Assert-Methode und die Steuerelemente anzuzeigen.
Vorsicht Die Dateien "UIMap.designer.cs" oder "UIMap.Designer.vb" sollten nicht direkt geändert werden.Andernfalls werden die an der Datei vorgenommenen Änderungen bei jedem Generieren des Tests überschrieben.
Assert-Methode
public void AssertMethod1() { #region Variable Declarations XamlEdit uITextBoxEdit = this.UIApp1Window.UITextBoxEdit; #endregion // Verify that the 'Text' property of 'textBox' text box equals 'button' Assert.AreEqual(this.AssertMethod3ExpectedValues.UITextBoxEditText, uITextBoxEdit.Text); }
Public Sub AssertMethod1() Dim uITextBoxEdit As XamlEdit = Me.UIApp2Window.UITextBoxEdit 'Verify that the 'Text' property of 'textBox' text box equals 'button' Assert.AreEqual(Me.AssertMethod1ExpectedValues.UITextBoxEditText, uITextBoxEdit.Text) End Sub
Steuerelemente
#region Properties public XamlButton UIButtonButton { get { if ((this.mUIButtonButton == null)) { this.mUIButtonButton = new XamlButton(this); #region Search Criteria this.mUIButtonButton.SearchProperties[XamlButton.PropertyNames.AutomationId] = "button"; this.mUIButtonButton.WindowTitles.Add("App1"); #endregion } return this.mUIButtonButton; } } public XamlEdit UITextBoxEdit { get { if ((this.mUITextBoxEdit == null)) { this.mUITextBoxEdit = new XamlEdit(this); #region Search Criteria this.mUITextBoxEdit.SearchProperties[XamlEdit.PropertyNames.AutomationId] = "textBox"; this.mUITextBoxEdit.WindowTitles.Add("App1"); #endregion } return this.mUITextBoxEdit; } } #endregion #region Fields private XamlButton mUIButtonButton; private XamlEdit mUITextBoxEdit; #endregion
#Region "Properties" Public ReadOnly Property UIButtonButton() As XamlButton Get If (Me.mUIButtonButton Is Nothing) Then Me.mUIButtonButton = New XamlButton(Me) Me.mUIButtonButton.SearchProperties(XamlButton.PropertyNames.AutomationId) = "button" Me.mUIButtonButton.WindowTitles.Add("App2") End If Return Me.mUIButtonButton End Get End Property Public ReadOnly Property UITextBoxEdit() As XamlEdit Get If (Me.mUITextBoxEdit Is Nothing) Then Me.mUITextBoxEdit = New XamlEdit(Me) Me.mUITextBoxEdit.SearchProperties(XamlEdit.PropertyNames.AutomationId) = "textBox" Me.mUITextBoxEdit.WindowTitles.Add("App2") End If Return Me.mUITextBoxEdit End Get End Property #End Region #Region "Fields" Private mUIButtonButton As XamlButton Private mUITextBoxEdit As XamlEdit #End Region
Öffnen Sie im Projektmappen-Explorer die Datei "CodedUITest1.cs" oder "CodedUITest1.vb".Nun können Sie der CodedUTTestMethod1-Methode Code für die zum Ausführen des Tests erforderlichen Aktionen hinzufügen, indem Sie die der UIMap hinzugefügten Steuerelemente verwenden:
Starten Sie die Windows Store-App mithilfe der Automation ID-Eigenschaft, die Sie zuvor in Zwischenablage kopiert haben:
XamlWindow.Launch("8ebca7c4-effe-4c86-9998-068daccee452_cyrqexqw8cc7c!App")
XamlWindow myAppWindow = XamlWindow.Launch("7254db3e-20a7-424e-8e05-7c4dabf4f28d_cyrqexqw8cc7c!App");
Fügen Sie eine Geste hinzu, um auf das Schaltflächensteuerelement zu tippen:
Gesture.Tap(this.UIMap.UIApp1Window. UIButtonButton);
Gesture.Tap(Me.UIMap.UIApp2Window. UIButtonButton)
Überprüfen Sie, ob der Aufruf der automatisch generierten Assert-Methode nach dem Starten der Anwendung und dem Tippen auf die Schaltfläche erfolgt:
this.UIMap.AssertMethod1();
Me.UIMap.AssertMethod1()
Nach dem Hinzufügen des Codes sollte die CodedUITestMethod1-Testmethode wie folgt aussehen:
[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. // Launch the app. XamlWindow myAppWindow = XamlWindow.Launch("7254db3e-20a7-424e-8e05-7c4dabf4f28d_cyrqexqw8cc7c!App"); // Tap the button. Gesture.Tap(this.UIMap.UIApp1Window.UIButtonButton); this.UIMap.AssertMethod1(); }
<CodedUITest(CodedUITestType.WindowsStore)> Public Class CodedUITest1 <TestMethod()> Public Sub 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. ' ' Launch the app. XamlWindow.Launch("8ebca7c4-effe-4c86-9998-068daccee452_cyrqexqw8cc7c!App") '// Tap the button. Gesture.Tap(Me.UIMap.UIApp2Window.UIButtonButton) Me.UIMap.AssertMethod1() End Sub
Erstellen Sie den Test, und führen Sie diesen anschließend mit dem Test-Explorer aus.
Die Windows Store-App wird gestartet, die Aktion für das Tippen auf die Schaltfläche wird abgeschlossen, und die Text-Eigenschaft des Textfelds wird mithilfe der Assert-Methode mit einem Wert versehen und überprüft.
Nach Abschluss des Tests wird im Test-Explorer das erfolgreiche Ergebnis angezeigt.
Fragen und Antworten
F: Warum wird im Dialogfeld "Test der codierten UI" unter "Code generieren" nicht die Option zum Aufzeichnen des Tests der codierten UI angezeigt?
A: Die Option zum Aufzeichnen wird für Windows Store-Apps nicht unterstützt.
F: Kann ich einen Test der codierten UI für Windows Store-Apps auf Grundlage von WinJS erstellen?
A: Nein, nur XAML-basierte Apps werden unterstützt.
F: Kann ich auf einem Computer, auf dem Windows 8 nicht ausgeführt wird, Tests der codierten UI für Windows Store-Apps erstellen?
A: Nein, die Vorlage "Testprojekt für codierte UI (Windows Store-Apps)" steht nur unter Windows 8 zur Verfügung.
F: Warum kann ich den Code in der Datei "UIMap.Designer" nicht ändern?
A: Alle Codeänderungen, die Sie an der Datei "UIMapDesigner.cs" vornehmen, werden jedes Mal überschrieben, wenn Sie Code mit dem UIMap – Test-Generator für codierte UI generieren.Wenn Sie eine aufgezeichnete Methode ändern müssen, müssen Sie sie in die UIMap.cs-Datei kopieren und umbenennen.Die Datei "UIMap.cs" kann verwendet werden, um Methoden und Eigenschaften in der Datei "UIMapDesigner.cs" zu überschreiben.Sie müssen den Verweis auf die ursprüngliche Methode in der Datei "Coded UITest.cs" entfernen und ihn durch den umbenannten Methodennamen ersetzen.
Siehe auch
Konzepte
Überprüfen von Code mithilfe der Benutzeroberflächenautomatisierung
Festlegen einer eindeutigen Automatisierungseigenschaft für Windows Store-Steuerelemente für Tests