Udostępnij za pośrednictwem


Testowanie aplikacji systemu Windows Phone za pomocą kodowanych testów interfejsu użytkownika

Użyj kodowanych testów interfejsu użytkownika aplikacji systemu Windows Phone.

Utworzyć prostą aplikację systemu Windows Phone

  1. Utwórz nowy projekt pustą aplikację systemu Windows Phone przy użyciu szablonu albo Visual C# lub Visual Basic.

    Tworzenie nowej aplikacji systemu Windows Phone

  2. W Eksploratorze rozwiązań Otwórz MainPage.xaml.Z przybornika przeciągnij powierzchnię projektową formant przycisku i formant pola tekstowego.

    Dodaj contols do MainPage.xaml

  3. W oknie dialogowym właściwości nazwy formantu przycisk.

    Nazwa formantu przycisk

  4. Nazwa formantu pola tekstowego.

    Nazwa formantu pola tekstowego

  5. Na powierzchnię projektanta kliknij dwukrotnie formant przycisku, a następnie dodaj następujący kod:

    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
    
  6. Naciśnij klawisz F5, aby uruchomić aplikację systemu Windows Phone w emulatora i sprawdź, czy działa.

    Uruchamianie systemu Windows Phone aplikacji

  7. Zakończ emulatora.

Wdrażanie systemu Windows Phone aplikacji

  • Przed kodowanych testów interfejsu użytkownika można mapować formanty aplikacji, należy wdrożyć aplikację.

    Wdrażanie systemu Windows Phone aplikacji

    Zostanie uruchomiony program emulator.Aplikacja jest teraz dostępny do testowania.

    Wdrożenie emulatora aplikacji

    Zatrzymaj emulator uruchomiona podczas tworzenia kodowane test interfejsu użytkownika.

Utwórz kodowanych testów interfejsu użytkownika aplikacji systemu Windows Phone

  1. Dodaj nowy projekt kodowanych testów interfejsu użytkownika do rozwiązania z aplikacji systemu Windows Phone.

    Utwórz nowe kodowanych testów interfejsu użytkownika dla systemu Windows Phone

  2. Wybierz edytować mapy interfejsu użytkownika za pomocą narzędzia krzyżyk.

    Generowanie kodowanych testów interfejsu użytkownika za pomocą narzędzia krzyżyk.

  3. Użyj narzędzia krzyżyk, aby wybrać aplikację, a następnie skopiuj wartość dla aplikacji AutomationId właściwość, która będzie można później uruchomić aplikację w teście.

    Kopiuj wartość AutomationId aplikacji

  4. W emulator Uruchom aplikację, a narzędzie krzyżyk i zaznacz kontrolkę przycisku.Następnie dodaj przycisk do mapy kontroli interfejsu użytkownika.

    Mapowanie formanty za pomocą narzędzia krzyżyk

  5. Aby dodać formant pola tekstowego do mapy kontrolki interfejsu użytkownika, powtórz poprzedni krok.

    Formant krzyżyk Mapa i narzędzia pole tekstowe

  6. Generowanie kodu do tworzenia kodu dla zmian w planie kontroli interfejsu użytkownika.

    Generuj kod z konstruktora

  7. Narzędzie krzyżyk zaznacz formant pola tekstowego, a następnie wybierz opcję tekstu właściwości.

    Wybierz właściwości Text

  8. Dodaj assertion.Aby sprawdzić, czy wartość jest poprawna go będą używane w teście.

    Dodawanie potwierdzenia w teście

  9. Dodaj i generowania kodu dla metody potwierdzenia.

    Generuj kod potwierdzenia

  10. Visual C#

    W Eksploratorze rozwiązań Otwórz plik UIMap.Designer.cs, aby wyświetlić kod, który został właśnie dodany do metody potwierdzenia i formanty.

    Visual Basic

    W Eksploratorze rozwiązań Otwórz plik CodedUITest1.vb.W CodedUITestMethod1() test kod metody, kliknij prawym przyciskiem myszy wywołanie metody potwierdzenia, które zostały dodane automatycznie Me.UIMap.AssertMethod1() i wybierz polecenie przejdź do definicji.Plik UIMap.Designer.vb zostanie otwarta w edytorze kodu, aby wyświetlić kod, który dodaje metody potwierdzenia i formanty.

    Informacje dotyczące przestrogiPrzestroga

    Nie należy modyfikować pliku UIMap.designer.cs lub UIMap.Designer.vb bezpośrednio.Jeśli to zrobisz, zmiany w pliku zostaną zastąpione każdym wygenerowaniu testu.

    Assert — Metoda

    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 Sub
    

    Formanty

    #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
    
  11. W Eksploratorze rozwiązań Otwórz plik CodedUITest1.cs lub CodedUITest1.vb.Możesz dodać kod do metody CodedUTTestMethod1 dla działań potrzebnych do uruchomienia testu.Za pomocą formantów, które zostały dodane do UIMap, aby dodać kod:

    1. Uruchomienie aplikacji systemu Windows Phone przy użyciu właściwości identyfikator automatyzacji wcześniej skopiowane do Schowka:

      XamlWindow myAppWindow = XamlWindow.Launch("ed85f6ff-2fd1-4ec5-9eef-696026c3fa7b_cyrqexqw8cc7c!App");
      
      XamlWindow.Launch("ed85f6ff-2fd1-4ec5-9eef-696026c3fa7b_cyrqexqw8cc7c!App");
      
    2. Dodaj gest do naciśnij przycisk kontrolki:

      Gesture.Tap(this.UIMap.UIApp1Window.UIButtonButton);
      
      Gesture.Tap(Me.UIMap.UIApp1Window.UIButtonButton)
      
    3. Należy sprawdzić, czy wywołanie metody potwierdzenia, który został wygenerowany automatycznie pochodzą po uruchomieniu aplikacji, a następnie wybierz gest przycisk:

      this.UIMap.AssertMethod1();
      
      Me.UIMap.AssertMethod1()
      

    Po dodaniu kod metody badania CodedUITestMethod1 mają pojawiać się w następujący sposób:

    [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
    

Uruchom kodowanych testów interfejsu użytkownika

  • Tworzenie testu, a następnie uruchom test za pomocą Eksploratora testów.

    Tworzenie i uruchamianie testu za pomocą Eksploratora testów

    Uruchamia aplikację systemu Windows Phone, akcja tap zakończeniu przycisk i pole tekstowe Tekst właściwości jest wypełniony i sprawdzane za pomocą metody potwierdzenia.

    Uruchamianie testu systemu Windows Phone

    Po zakończeniu testu Eksploratora testów potwierdza, że przekazana testu.

    Wyniki Eksploratora testów

Użyj opartych na danych kodowanych testów interfejsu użytkownika w aplikacji Windows Phone

Aby przetestować różne warunki, kodowanych testów interfejsu użytkownika można uruchamiać wiele razy z różnymi zestawami danych.

Opartych na danych testów kodowanych interfejsu użytkownika dla systemu Windows Phone można definiować przy użyciu atrybutu DataRow metody testu.Następujący przykład, x i y wartości 1 i 2 można używać do pierwszej iteracji i wartość -1 -2 dla drugiego iteracji testu.

[DataRow(1, 2, DisplayName = "Add positive numbers")]
[DataRow(-1, -2, DisplayName = "Add negative numbers")]
[TestMethod]
public void DataDrivingDemo_MyTestMethod(int x, int y)

Pytania i odpowiedzi

Pyt Dlaczego nie można odnaleźć że szablon do tworzenia systemu Windows Phone kodowanych projektu testowego interfejsu użytkownika?

Element: Upewnij się, że zainstalowano programu Visual Studio 2013 Update 2 lub nowszej.

Pyt należy wdrożyć aplikację systemu Windows Phone w emulatora w celu mapowania formantów interfejsu użytkownika?

Element: tak, kodowane konstruktora testów interfejsu użytkownika wymaga, aby działać emulator aplikacji można wdrożyć do niej.W przeciwnym razie zgłoszą komunikat o błędzie informujący, nie można było znaleźć nie emulator uruchomione.

Pyt testy można wykonać dla emulatora tylko, czy można także użyć urządzenia fizycznego?

Element: jedną z tych opcji jest obsługiwany.Obiekt docelowy do wykonania testu jest wybierany zmiana typu emulator lub zaznaczając urządzenia na pasku narzędzi urządzenia.Jeśli wybrano urządzenia, urządzeniem Blue telefonu musi być połączony z jednym z portów USB komputera.

Wybierz wersję emulator lub fizyczne urządzenia

Pyt.: Dlaczego nie widzę opcję rejestrowania Moje kodowanych testów interfejsu użytkownika w generowania kodu dla okna dialogowego kodowane testowanie interfejsu użytkownika?

Element: opcję rejestrowania nie jest obsługiwana dla aplikacji Windows Phone.

Pyt można utworzyć kodowanych testów interfejsu użytkownika dla Moje aplikacje systemu Windows Phone, na podstawie WinJS, Silverlight lub HTML5?

Element: nie, są obsługiwane tylko na podstawie XAML aplikacji.

Pyt można utworzyć kodowane testy interfejsu użytkownika dla Moje aplikacje systemu Windows Phone w systemie, który nie jest uruchomiony system Windows 8.1?

Element: nie, szablon kodowanych testów interfejsu użytkownika projektu (aplikacje systemu Windows Phone) jest dostępna tylko w systemie Windows 8.1.

Pyt można wybrać formanty, które są na zewnątrz emulatora?

Element: nie, konstruktora nie wykryje je.

Pyt mogę używać kodowane konstruktora testów interfejsu użytkownika do mapowania formantów przy użyciu telefonu fizycznego urządzenia?

Element: nie, konstruktora można tylko zamapować elementy interfejsu użytkownika, jeśli Twoja aplikacja została wdrożona na emulatora.

Pyt.: Dlaczego nie można zmodyfikować kod w pliku UIMap.Designer

Element: kod wprowadzonych zmian w pliku UIMapDesigner.cs zostaną zastąpione za każdym razem, gdy generowanie kodu za pomocą UIMap - kodowanych konstruktora testów interfejsu użytkownika.Jeśli trzeba zmodyfikować nagraną metodę, należy skopiować ją do pliku UIMap.cs i zmienić jej nazwę.Plik UIMap.cs może służyć do zastępowania metod i właściwości w pliku UIMapDesigner.cs.Musisz usunąć odwołanie do oryginalnej metody w pliku Coded UITest.cs, a następnie zastąpić je zmienioną nazwą metody.

Pyt można uruchomić kodowanych testów interfejsu użytkownika na mojej aplikacji systemu Windows Phone z wiersza polecenia?

Element: tak, użyj pliku runsettings, aby określić docelowe urządzenie potrzeby wykonywania testów.Na przykład:

vstest.console.exe “pathToYourCodedUITestDll” /settings:devicetarget.runsettings

Przykładowy plik runsettings:

<?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>

Pyt.: co to są różnic między kodowane testy interfejsu użytkownika dla aplikacji ze Sklepu Windows oparte na języku XAML i aplikacji systemu Windows Phone?

Element: to niektóre różnice klucza:

Funkcja

Aplikacje Windows Store

Aplikacje systemu Windows Phone

Cel dla testów

Komputerze lokalnym lub zdalnym.Gdy użytkownik korzysta z automatycznych przypadek testowy do uruchamiania testów można określić komputerach zdalnych.Zobacz Automatyzacja przypadków testowych w programie Microsoft Test Manager.

Emulator lub urządzenia.Zobacz, Q: testy można wykonać tylko emulatora lub można także użyć urządzenia fizycznego? w tym temacie.

Wykonanie z wiersza polecenia

Nie jest wymagane do określania docelowego pliku ustawień.

Plik Runsettings jest wymagana do określania docelowego.

Specjalne klasy formantów powłoki

DirectUIControl

UITestControl

Formant widoku sieci Web w aplikacji języka XAML

Obsługiwane w przypadku użycia Html * specjalistyczny klasy do interakcji z elementów HTML.Zobacz Microsoft.VisualStudio.TestTools.UITesting.HtmlControls.

Nieobsługiwane.

Uruchom testy automatyczne w MTM

Obsługiwane.

Nieobsługiwane.

Testów opartych na danych

Zobacz testów opartych na danych informacji o korzystaniu z zewnętrznych źródeł danych i przy użyciu źródła danych atrybutu metody testu.

Dane są określony w tekście, przy użyciu atrybutu DataRow metody testu.Zobacz opartych na danych użyj kodowanych testów interfejsu użytkownika w aplikacji Windows Phone w tym temacie.

Informacji o kodowane testy interfejsu użytkownika dla aplikacji ze Sklepu Windows, zobacz Testowanie aplikacji ze Sklepu Windows za pomocą kodowanych testów interfejsu użytkownika.

Zasoby zewnętrzne

Blog zarządzania cyklem życia aplikacji programu Visual Studio firmy Microsoft: za pomocą kodowanych interfejsu użytkownika do testowania aplikacji oparte na języku XAML systemu Windows Phone

Zobacz też

Koncepcje

Weryfikowanie kodu przy użyciu automatyzacji interfejsu użytkownika