Eseguire test codificati dell'interfaccia utente sulle app di Windows Store
Usare test codificati dell'interfaccia utente per verificare le app di Windows Store.
Creare una semplice app di Windows Store
Per eseguire test codificati dell'interfaccia utente per un'app di Windows Store basata su XAML, è necessario impostare una proprietà di automazione univoca che identifichi ogni controllo.
Scegliere Opzioni dal menu Strumenti, quindi Editor di testo, XAML e infine Varie.
Selezionare la casella di controllo per denominare automaticamente gli elementi non attivi al momento della creazione.
Creare un nuovo progetto per un'app di Windows Store vuota basata su XAML, usando un modello di Visual C# o Visual Basic.
In Esplora soluzioni aprire il file MainPage.xaml.Dalla casella degli strumenti trascinare un controllo Button e un controllo Textbox nell'area di progettazione.
Fare doppio clic sul controllo Button e aggiungere il codice seguente:
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
Premere F5 per eseguire l'app di Windows Store.
Creare ed eseguire un test codificato dell'interfaccia utente per l'app di Windows Store
Creare un nuovo progetto di test codificato dell'interfaccia utente per l'app di Windows Store.
Scegliere di modificare la mappa dell'interfaccia utente usando lo strumento selettore di precisione.
Usare lo strumento selettore di precisione nel Generatore di test codificati dell'interfaccia utente per selezionare il riquadro dell'app, fare clic con il pulsante destro del mouse su AutomationId e scegliere Copia valore negli Appunti.Il valore presente negli Appunti verrà usato più avanti per scrivere l'azione per l'avvio dell'app per i test.
Nell'app di Windows Store in esecuzione usare lo strumento selettore di precisione per selezionare il controllo Button e il controllo Textbox.Dopo avere aggiunto ogni controllo, scegliere il pulsante Aggiungi controllo alla mappa del controllo dell'interfaccia utente sulla barra degli strumenti Generatore di test codificati dell'interfaccia utente.
Scegliere il pulsante Genera codice sulla barra degli strumenti Generatore di test codificati dell'interfaccia utente, quindi scegliere Genera per creare il codice per le modifiche alla mappa del controllo dell'interfaccia utente.
Scegliere il pulsante per impostare un valore nella casella di testo.
Usare lo strumento selettore di precisione per selezionare il controllo TextBox e quindi selezionare la proprietà Text.
Aggiungere un'asserzioneVerrà usata nel test per verificare che il valore sia corretto.
Aggiungere e generare il codice per l'asserzione.
Visual C#
In Esplora soluzioni aprire il file UIMap.Designer.cs per visualizzare il codice aggiunto per il metodo Assert e i controlli.
Visual Basic
Aprire il file CodedUITest1.vb in Esplora soluzioni, quindi nel codice del metodo CodedUITestMethod1() fare clic con il pulsante destro del mouse sulla chiamata al metodo di asserzione Me.UIMap.AssertMethod1() aggiunto automaticamente e scegliere Vai a definizione.Verrà aperto il file UIMap.Designer.vb nell'editor del codice, in cui è visibile il codice aggiunto per il metodo di asserzione e i controlli.
Attenzione
Non modificare direttamente il file UIMap.designer.cs o UIMap.Designer.vb perché,così facendo, le modifiche apportate al file verrebbero sovrascritte ogni volta che viene generato il test.
Metodo Assert
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
Controlli
#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
In Esplora soluzioni aprire il file CodedUITest1.cs o CodedUITest1.vb.A questo punto è possibile aggiungere il codice al metodo CodedUTTestMethod1 per le azioni necessarie per l'esecuzione del test usando i controlli aggiunti a UIMap:
Avviare l'app di Windows Store usando la proprietà automationID copiata in precedenza negli Appunti:
XamlWindow.Launch("8ebca7c4-effe-4c86-9998-068daccee452_cyrqexqw8cc7c!App")
XamlWindow myAppWindow = XamlWindow.Launch("7254db3e-20a7-424e-8e05-7c4dabf4f28d_cyrqexqw8cc7c!App");
Aggiungere un gesto tocco per il controllo Button:
Gesture.Tap(this.UIMap.UIApp1Window. UIButtonButton);
Gesture.Tap(Me.UIMap.UIApp2Window. UIButtonButton)
Verificare che la chiamata al metodo Assert generato automaticamente avvenga dopo l'avvio dell'app e del gesto tocco sul pulsante:
this.UIMap.AssertMethod1();
Me.UIMap.AssertMethod1()
Dopo avere aggiunto il codice, il metodo di test CodedUITestMethod1 dovrebbe avere un aspetto simile al seguente:
[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
Compilare ed eseguire il test con Esplora test.
L'app di Windows Store viene avviata, l'azione per il tocco del pulsante è completata e la proprietà Text della casella di testo è popolata e convalidata tramite il metodo Assert.
Al termine dell'operazione, Esplora test indica che il test è stato superato.
Domande e risposte
D: Perché non è presente un'opzione per registrare il test codificato dell'interfaccia utente nella finestra di dialogo Genera codice per test codificato dell'interfaccia utente?
R: L'opzione per la registrazione non è supportata per le app di Windows Store.
D: È possibile creare un test codificato dell'interfaccia utente per le app di Windows Store basate su WinJS?
R: No, sono supportate solo le app basate su XAML.
D: È possibile creare test codificati dell'interfaccia utente per le app di Windows Store in un sistema che non esegue Windows 8?
R: No, il modello Progetto di test codificato dell'interfaccia utente (app di Windows Store) è disponibile solo in Windows 8.
D: Perché non è possibile modificare il codice nel file UIMap.Designer?
R: Qualsiasi modifica del codice apportata nel file UIMapDesigner.cs verrà sovrascritta ogni volta che si genera codice usando UIMap - Generatore di test codificati dell'interfaccia utente.Se è necessario modificare un metodo registrato, copiarlo nel file UIMap.cs e rinominarlo.Il file UIMap.cs può essere utilizzato per eseguire l'override dei metodi e delle proprietà contenuti nel file UIMapDesigner.cs.È necessario rimuovere il riferimento al metodo originale nel file Coded UITest.cs e sostituirlo con il nome del metodo rinominato.
Vedere anche
Concetti
Verifica del codice mediante l'automazione interfaccia utente
Impostare una proprietà di automazione univoca dei controlli Windows Store per il test