Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Testen von Windows Phone-Apps mit Tests der codierten UI.
Erstellen einer einfachen Windows Phone-App
Erstellen Sie mit einer Visual C#- oder Visual Basic-Vorlage ein neues Projekt für eine leere Windows Phone-App.
.png)
Öffnen Sie im Projektmappen-Explorer die Datei "MainPage.xaml".Ziehen Sie aus der Toolbox ein Schaltflächen- und ein Textfeldsteuerelement auf die Entwurfsoberfläche.
.png)
Benennen Sie im Fenster "Eigenschaften" das Schaltflächen-Steuerelement.
.png)
Benennen Sie das Textfeld-Steuerelement.
.png)
Doppelklicken Sie auf der Entwurfsoberfläche 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 ClassDrücken Sie F5, sodass die Windows Phone-App im Emulator ausgeführt wird und überprüfen Sie, ob sie funktioniert.
.png)
Verlassen Sie den Emulator.
Windows Phone App bereitstellen
Ehe ein Coded UI-Test die Steuerelemente einer App zuordnen kann, müssen Sie die App bereitstellen.
.png)
Der Emulator startet.Die App ist jetzt für den Test bereit.
.png)
Lassen Sie den Emulator laufen, während Sie den Coded UI-Test erstellen.
Erstellen eines Tests der codierten UI für die Windows Phone-App
Fügen Sie ein neues Projekt mit einem Test für codierten UI der Lösung mit der Windows Phone-App hinzu.
.png)
Wählen Sie mithilfe des Fadenkreuztools aus, dass Sie die UI-Zuordnung bearbeiten möchten.
.png)
Verwenden Sie das Fadenkreuztool zur Auswahl der App. Kopieren Sie dann den Wert der AutomationId-Eigenschaft der App, der später für das Starten der App im Test verwendet wird.
.png)
Starten Sie die App im Emulator mit dem Fadenkreuztool und wählen Sie das Schaltflächensteuerelement aus.Fügen Sie dann das Schaltflächen-Steuerelement der UI-Steuerelementzuordnung hinzu.
.png)
Wiederholen Sie den vorangehenden Schritt zum Hinzufügen des Textfeld-Steuerelements zur UI-Steuerelementzuordnung.
.png)
Erstellen Sie den Code, sodass Code für Änderungen an der UI-Steuerelementzuordnung erstellt wird.
.png)
Wählen Sie das Textfeldsteuerelement mit dem Fadenkreuztool aus, und wählen Sie dann die Text-Eigenschaft aus.
.png)
Fügen Sie eine Assertion hinzu.Diese wird beim Test verwendet, um die Richtigkeit des Werts sicherzustellen.
.png)
Generieren Sie Code für die Assert-Methode, und fügen Sie diesen hinzu.
.png)
Visual C#
Öffnen Sie im Projektmappen-Explorer die Datei "UIMap.Designer.cs", um den eben 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 Testmethodencode "CodedUITestMethod1()" mit der rechten Maustaste den Aufruf für die Assertionsmethode, der automatisch hinzugefügt wurde Me.UIMap.AssertMethod1() und wählen Sie Gehe zu Definition.Hierdurch wird die Datei "UIMap.Designer.vb" im Code-Editor geöffnet, sodass Sie den hinzugefügten Code für die Assert-Methode und die Steuerelemente sehen können.
VorsichtDie 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.AssertMethod1ExpectedValues.UITextBoxEditText, uITextBoxEdit.Text); }Public Sub AssertMethod1() Dim uITextBoxEdit As XamlEdit = Me.UIApp1Window.UITextBoxEdit 'Verify that the 'Text' property of 'textBox' text box equals 'button' Assert.AreEqual(Me.AssertMethod1ExpectedValues.UITextBoxEditText, uITextBoxEdit.Text) End SubSteuerelemente
#region Properties public virtual AssertMethod1ExpectedValues AssertMethod1ExpectedValues { get { if ((this.mAssertMethod1ExpectedValues == null)) { this.mAssertMethod1ExpectedValues = new AssertMethod1ExpectedValues(); } return this.mAssertMethod1ExpectedValues; } } public UIApp1Window UIApp1Window { get { if ((this.mUIApp1Window == null)) { this.mUIApp1Window = new UIApp1Window(); } return this.mUIApp1Window; } } #endregion #region Fields private AssertMethod1ExpectedValues mAssertMethod1ExpectedValues; private UIApp1Window mUIApp1Window; #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" 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" 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.Verwenden Sie die der UIMap hinzugefügten Steuerelemente zum Hinzufügen von Code:
Starten Sie die Windows Phone-App mithilfe der Automation ID-Eigenschaft, die Sie zuvor in Zwischenablage kopiert haben:
XamlWindow myAppWindow = XamlWindow.Launch("ed85f6ff-2fd1-4ec5-9eef-696026c3fa7b_cyrqexqw8cc7c!App");XamlWindow.Launch("ed85f6ff-2fd1-4ec5-9eef-696026c3fa7b_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.UIApp1Window.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("ed85f6ff-2fd1-4ec5-9eef-696026c3fa7b_cyrqexqw8cc7c!App"); // Tap the button. Gesture.Tap(this.UIMap.UIApp1Window.UIButtonButton); this.UIMap.AssertMethod1(); }<CodedUITest> 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("ed85f6ff-2fd1-4ec5-9eef-696026c3fa7b_cyrqexqw8cc7c!App") '// Tap the button. Gesture.Tap(Me.UIMap.UIApp1Window.UIButtonButton) Me.UIMap.AssertMethod1() End Sub
Ausführen des Coded UI-Tests
Erstellen Sie den Test, und führen Sie diesen anschließend mit dem Test-Explorer aus.
.png)
Die Windows Phone-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.
.png)
Nach Abschluss des Tests wird im Test-Explorer das Bestehen des Tests angezeigt.
.png)
Einsatz datengesteuerter Coded UI-Test auf Windows Phone-Apps
Ein Coded UI-Test kann mehrere Male ausgeführt werden, um unterschiedliche Bedingungen mit verschiedenen Datensets zu testen.
Datengesteuerte Coded UI-Test für Windows Phone werden mithilfe des Attributs DataRow auf einer Testmethode definiert.Im folgenden Beispiel verwenden x und y die Werte 1 und 2 für die erste und -1 und -2 für die zweite Iteration des Tests.
[DataRow(1, 2, DisplayName = "Add positive numbers")]
[DataRow(-1, -2, DisplayName = "Add negative numbers")]
[TestMethod]
public void DataDrivingDemo_MyTestMethod(int x, int y)
Fragen und Antworten
F: Warum kann ich die Vorlage für das Erstellen eines Coded UI-Testprojekts in Windows Phone nicht finden?
A: Stellen Sie sicher, dass Visual Studio 2013 Update 2 oder neuer installiert ist.
F: Muss ich die Windows Phone-App im Emulator bereitstellen, sodass ich die UI-Steuerelemente zuordnen kann?
A: Ja, der Test-Generator für codierte UI erfordert, dass ein Emulator läuft und die App an diesen bereitgestellt wird.Ansonsten wird ein Fehler ausgegeben der besagt, dass kein laufender Emulator gefunden werden konnte.
F: Können Tests nur auf dem Emulator ausgeführt werden oder kann ich auch ein physisches Gerät verwenden?
A: Beide Optionen werden unterstützt.Das Ziel für die Umsetzung des Tests wird durch Ändern des Emulatortyps in der Gerätesymbolleiste ausgewählt.Ist "Gerät" ausgewählt, dann muss ein Phone Blue-Gerät mit einem der USB-Anschlüsse des Rechners verbunden sein.
.png)
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 Phone-Apps nicht unterstützt.
F: Kann ich einen Test der codierten UI für Windows Phone-Apps auf Grundlage von WinJS, Silverlight oder HTML5 erstellen?
A: Nein, nur XAML-basierte Apps werden unterstützt.
F: Kann ich auf einem Computer, auf dem Windows 8,1 nicht ausgeführt wird, Tests der codierten UI für Windows Phone-Apps erstellen?
A: Nein, die Vorlage "Testprojekt für codierte UI (Windows Phone-Apps)" steht nur unter Windows 8,1 zur Verfügung.
F: Kann ich Steuerelemente auswählen, die sich außerhalb des Emulators befinden?
A: Nein, der Builder erkennt sie nicht.
F: Kann ich den Test-Generator für codierte UI verwenden, um Steuerelemente einem physischen Phone-Gerät zuzuordnen?
A: Nein, der Builder kann UI-Elemente nur zuordnen, wenn die App auf dem Emulator bereitgestellt wurde.
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.
F: Kann ich einen Test der codierten UI für Windows Phone-Apps aus der Befehlszeile ausführen?
A: Ja, verwenden Sie eine RUNSETTINGS-Datei für das Festlegen des Zielgeräts bei der Ausführung des Tests.Beispiel:
vstest.console.exe “pathToYourCodedUITestDll” /settings:devicetarget.runsettings
Beispiel für eine RUNSETTINGS-Datei:
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<MSPhoneTest>
<!--to specify test execution on device, use a TargetDevice option as follows-->
<TargetDevice>Device</TargetDevice>
<!--to specify an emulator instead, use a TargetDevice option like below-->
<!--<TargetDevice>Emulator 8.1 WVGA 4 inch 512MB</TargetDevice>-->
</MSPhoneTest>
</RunSettings>
F: Welche Unterschiede gibt es zwischen Coded UI-Tests für XAML-basierte Windows Store-Apps und Windows Phone-Apps?
A: Es gibt einige wichtige Unterschiede:
Funktion |
Windows Store-Apps |
Windows Phone-Apps |
|---|---|---|
Ziel für das Ausführen von Tests |
Lokaler oder Remotecomputer.Remotecomputer können nur festgelegt werden, wenn ein automatisierter Testfall für das Ausführen von Tests verwendet wurde.Siehe Automatisieren eines Testfalls mit Microsoft Test Manager. |
Emulator oder Gerät.Siehe F: Können Tests nur auf dem Emulator ausgeführt werden oder kann ich auch ein physisches Gerät verwenden? in diesem Thema. |
Ausführen aus der Befehlszeile |
Einstellungsdatei für das Festlegen des Ziels nicht erforderlich. |
RUNSETTINGS-Datei für das Festlegen des Ziels erforderlich. |
Spezialisierte Klassen für Shell-Steuerelemente |
||
WebView-Steuerelement in einer XAML-App |
Unterstützt, wenn spezielle HTML*-Klassen für die Interaktion mit HTML-Elementen verwendet werden.Siehe Microsoft.VisualStudio.TestTools.UITesting.HtmlControls. |
Wird nicht unterstützt. |
Ausführen automatisierter Tests aus MTM |
Unterstützt. |
Wird nicht unterstützt. |
Datengesteuerte Tests |
Sie Datengesteuerte Tests zu Informationen über den Einsatz externer Datenquellen und die Verwendung des Attributs DataSource für eine Testmethode. |
Daten werden inline mit dem Attribut DataRow für eine Testmethode festgelegt.Siehe Einsatz datengesteuerter Coded UI-Test auf Windows Phone-Apps in diesem Thema. |
Informationenen über Coded UI-Test für Windows Store-Apps finden Sie hier: Testen von Windows Store-Apps mit Tests der codierten UI.
Externe Ressourcen
Blog "Anwendungslebenszyklus-Verwaltung von Microsoft Visual Studio": Using Coded UI to test XAML-based Windows Phone apps
Siehe auch
Konzepte
Überprüfen von Code mithilfe der Benutzeroberflächenautomatisierung