Probar aplicaciones de la Tienda Windows con pruebas de IU codificadas
Use las pruebas de IU codificadas para comprobar las aplicaciones de la Tienda Windows.
Crear una aplicación simple de la Tienda Windows
Si desea ejecutar pruebas de IU codificadas para la aplicación de la Tienda Windows basada en XAML, debe establecer una propiedad única de automatización que identifique cada control.
En el menú Herramientas, señale Opciones y después elija Editor de texto, XAML y, por último Varios.
Seleccione la casilla para asignar nombre automáticamente a los elementos interactivos cuando se creen.
Cree un nuevo proyecto para una aplicación de la Tienda Windows basada en XAML en blanco mediante una plantilla de Visual C# o Visual Basic.
En el Explorador de soluciones, abra el archivo MainPage.xaml.Desde el Cuadro de herramientas, arrastre un control de botón y un control de cuadro de texto a la superficie de diseño.
Haga doble clic en el control de botón y agregue el código siguiente:
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
Presione F5 para ejecutar la aplicación de la Tienda Windows.
Crear y ejecutar una prueba de IU codificada para la aplicación de la Tienda Windows
Cree un nuevo proyecto de prueba de IU codificada para la aplicación de la Tienda Windows.
Elija editar la asignación de IU mediante la herramienta de selección precisa.
Use la herramienta de selección precisa en el Generador de pruebas de IU codificadas para seleccionar el icono de la aplicación, haga clic con el botón secundario en AutomationId y elija Copiar valor en el Portapapeles.El valor del Portapapeles se usará después para escribir la acción para iniciar la aplicación para prueba.
En la aplicación de la Tienda Windows en ejecución, use la herramienta de selección precisa para elegir el control de botón y el control de cuadro de texto.Tras agregar cada control, elija el botón Agregar control a asignación de controles de IU en la barra de herramientas del Generador de pruebas de IU codificadas.
Elija el botón Generar código en la barra de herramientas del Generador de pruebas de IU codificadas y elija Generar para crear código para los cambios en la asignación de controles de IU.
Elija el botón para establecer un valor en el cuadro de texto.
Utilice la herramienta de selección precisa para seleccionar el control de cuadro de texto y después seleccione la propiedad Texto.
Agregue una aserción.Se utilizará en la prueba para comprobar que el valor sea correcto.
Agregue y genere código para la aserción.
Visual C#
En el Explorador de soluciones, abra el archivo UIMap.Designer.cs para ver el código agregado para el método de aserción y los controles.
Visual Basic
En el Explorador de soluciones, abra el archivo CodedUITest1.vb y, en el código del método de prueba CodedUITestMethod1(), haga clic con el botón secundario en la llamada al método de aserción que se agregó automáticamente, Me.UIMap.AssertMethod1(), y elija Ir a definición.Esto abrirá el archivo de UIMap.Designer.vb en el editor de código de modo que pueda ver el código agregado para el método de aserción y los controles.
Precaución No modifique directamente el archivo UIMap.designer.cs o el archivo UIMap.Designer.vb.Si lo hace, se sobrescribirán los cambios en el archivo cada vez que se genere la prueba.
Método de aserción
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
Controles
#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
En el Explorador de soluciones, abra el archivo CodedUITest1.cs o CodedUITest1.vb.Ahora puede agregar código al método CodedUTTestMethod1 para las acciones necesarias si desea ejecutar la prueba mediante los controles agregados a UIMap:
Inicie la aplicación de la Tienda Windows mediante la propiedad ID de automatización que copió en el Portapapeles previamente:
XamlWindow.Launch("8ebca7c4-effe-4c86-9998-068daccee452_cyrqexqw8cc7c!App")
XamlWindow myAppWindow = XamlWindow.Launch("7254db3e-20a7-424e-8e05-7c4dabf4f28d_cyrqexqw8cc7c!App");
Agregue un gesto para pulsar el control de botón:
Gesture.Tap(this.UIMap.UIApp1Window. UIButtonButton);
Gesture.Tap(Me.UIMap.UIApp2Window. UIButtonButton)
Compruebe que la llamada al método de aserción que se generó automáticamente se incluye después de iniciar la aplicación y el gesto en el botón:
this.UIMap.AssertMethod1();
Me.UIMap.AssertMethod1()
Tras agregar el código, el método de prueba CodedUITestMethod1 debería ser similar al siguiente:
[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
Compile la prueba y luego ejecútela mediante el explorador de pruebas.
La aplicación de la Tienda Windows se inicia, la acción para pulsar el botón se completa y la propiedad Text del cuadro de texto se rellena y se valida mediante el método de aserción.
Una vez completada la prueba, el explorador de pruebas confirma que se superó la prueba.
Preguntas y respuestas
P: ¿Por qué no veo la opción para registrar la prueba de IU codificada en la opción Generar código de un cuadro de diálogo Prueba de IU codificada?
R: La opción para registrar no se admite en aplicaciones de la Tienda Windows.
P: ¿Puedo crear una prueba de IU codificada para las aplicaciones de la Tienda Windows basadas en WinJS?
R: No. Solo se admiten aplicaciones basadas en XAML.
P: ¿Puedo crear pruebas de IU codificadas para las aplicaciones de la Tienda Windows en un sistema que no ejecute Windows 8?
R: No. La plantilla Proyecto de prueba de IU codificada (aplicaciones de la Tienda Windows) solo está disponible en Windows 8.
P: ¿Por qué no puedo modificar el código en el archivo UIMap.Designer?
R: Cualquier cambio que se realice en el código del archivo UIMapDesigner.cs se sobrescribirá cada vez que se genere código mediante UIMap - Generador de pruebas de IU codificadas.Si tiene que modificar un método grabado, debe copiarlo en el archivo UIMap.cs y cambiar el nombre.El archivo UIMap.cs se puede utilizar para invalidar métodos y propiedades en el archivo UIMapDesigner.cs.Debe quitar la referencia al método original en el archivo UITest.cs el Codificado y reemplazarlo con el nombre del método cuyo nombre ha cambiado.
Vea también
Conceptos
Comprobar el código usando la automatización de IU
Establecer una propiedad de automatización única para la prueba de controles de la Tienda Windows