Udostępnij za pośrednictwem


Instruktaż: Tworzenia, edytowania i utrzymanie zakodowanej Test interfejsu użytkownika

W tym instruktażu użytkownik utworzy prostą aplikację Windows Presentation Foundation (WPF) do demonstrowania sposobu tworzenia, edytowania i utrzymania kodowane jako test interfejsu użytkownika.Instruktaż dostarcza rozwiązania za rozwiązywanie testów, które zostały złamane przez różne problemy, czas i sterowania przeróbek.

Wymagania wstępne

Do wykonania tej procedury należy:

  • Visual Studio Ultimate lub Visual Studio premii.

Tworzenie aplikacji WPF proste

  1. Na pliku menu, wskaż New, a następnie wybierz Projekt.

    Pojawi się okno dialogowe Nowy projekt.

  2. W Installed okienku rozwiń węzeł Visual C#, a następnie wybierz systemu Windows.

  3. Nad środkowym okienku sprawdź, czy listy rozwijanej target framework jest ustawiona 4.5.NET Framework.

  4. W środkowym okienku wybierz Aplikacji WPF szablonu.

  5. W Nazwa wpisz SimpleWPFApp.

  6. Wybierz folder, w którym będzie zapisać projekt.W lokalizacji tekstu wpisz nazwę folderu.

  7. Wybierz przycisk OK.

    Projektant WPF dla programu Visual Studio otwiera i wyświetla MainWindow projektu.

  8. Jeśli przybornik nie jest aktualnie otwarty, należy go otworzyć.Wybierz polecenie View menu, a następnie wybierz polecenie Przybornik.

  9. W obszarze Wszystkie formanty WPF sekcji, przeciągnij przycisk, pole wyboru i ProgressBar formant na MainWindow obszar projektu.

  10. Zaznacz formant przycisku.W oknie Właściwości zmień wartość dla zawartości właściwość z przycisk do menu Start.

  11. Zaznacz formant składnika ProgressBar.W oknie Właściwości zmień wartość dla Maksymalna właściwość z 100 do 1000.

  12. Zaznacz formant, pole wyboru.W oknie dialogowym właściwości wyczyść IsEnabled właściwość.

    Aplikacji WPF proste

  13. Kliknij dwukrotnie formant przycisku, aby dodać wydarzenie wybierz.

    MainWindow.xmal.cs są wyświetlane w edytorze kodu kursor znajduje się w nowe zdarzenie button1_Choose.

  14. W górnej części klasy MainWindow dodać pełnomocnika.Pełnomocnik będzie używane na pasek postępu.Aby dodać pełnomocnika, Dodaj następujący kod:

            private delegate void ProgressBarDelegate(
            System.Windows.DependencyProperty dp, Object value);
    
  15. W metodzie button1_Choose Dodaj następujący kod:

                double progress = 0;
    
                ProgressBarDelegate updatePbDelegate =
            new ProgressBarDelegate(progressBar1.SetValue);
    
                do
                {
                    progress ++;
    
                    Dispatcher.Invoke(updatePbDelegate,
                        System.Windows.Threading.DispatcherPriority.Background,
                        new object[] { ProgressBar.ValueProperty, progress });
                    progressBar1.Value = progress;
                }
                while (progressBar1.Value != progressBar1.Maximum);
    
                checkBox1.IsEnabled = true;
    

Sprawdź WPF aplikacja działa poprawnie

  1. Na program Debug: polecenie menu, a następnie kliknij polecenie Wybierz Start Debugging lub naciśnij klawisz F5.

  2. Wybierz polecenie Start.

    W ciągu kilku sekund pasek postępu powinny być wykonane w 100%.Formant pola wyboru jest teraz włączone.

  3. Zamknij SimpleWPFApp.

Utwórz i uruchom Test kodowane jako interfejsu użytkownika dla SimpleWPFApp

  1. W oknie Solution Explorer, kliknij prawym przyciskiem myszy roztwór, wybierz polecenie Dodaj , a następnie wybierz Nowego projektu.

    Dodaj nowy projekt pojawi się okno dialogowe.

  2. W Installed okienku rozwiń węzeł Visual C#, a następnie wybierz Test.

  3. W środkowym okienku wybierz Kodowane projektu testowego interfejsu użytkownika szablonu.

  4. Wybierz przycisk OK.

    W oknie Solution Explorer kodowane nowy projekt test interfejsu użytkownika o nazwie CodedUITestProject1 jest dodawany do rozwiązania...

    Generuj kod testowo UI kodowane pojawi się okno dialogowe.

  5. Wybierz zarejestrować akcje, Edytuj mapę interfejsu użytkownika lub dodać twierdzenia opcji i wybierz polecenie OK.

    UIMap-kodowane interfejsu użytkownika Konstruktora Test pojawi się, i jest zminimalizowane okno programu Visual Studio.

    Aby uzyskać więcej informacji na temat opcji w oknie dialogowym, zobacz Tworzenie zakodowanej testy interfejsu użytkownika.

  6. Znajdź i uruchom aplikację SimpleWPFApp, który został utworzony wcześniej.Domyślnie aplikacja będzie następująca: C:\Users\ <username> \Documents\Visual Studio 2012\Projects\SimpleWPFApp\SimpleWPFApp\bin\Debug\SimpleWPFApp.exe

  7. Utwórz na pulpicie skrót do aplikacji SimpleWPFApp.Kliknij prawym przyciskiem myszy SimpleWPFApp.exe i wybierz polecenie kopię.Na pulpicie, kliknij prawym przyciskiem myszy i wybierz polecenie Wklej skrót.

    PoradaPorada

    Skrót do aplikacji ułatwia dodawanie lub modyfikowanie testy kodowane interfejsu użytkownika aplikacji, ponieważ pozwala szybko uruchomić aplikację.Nie trzeba łączyć się z nim.Trzeba będzie ponownie uruchomić aplikację, w tym instruktażu.

  8. Wybierz polecenie Rozpocznij rejestrowanie na UIMap-kodowane konstruktora Test interfejsu użytkownika.W ciągu kilku sekund Konstruktor kodowane Test interfejsu użytkownika będzie gotowy.

  9. Uruchom SimpleWPFApp.exe przy użyciu skrótu na pulpicie.

  10. Na SimpleWPFApp, wybierz opcję Start.

    W ciągu kilku sekund pasek postępu powinny być wykonane w 100%.Formant pola wyboru jest teraz włączone.

  11. Zaznacz pole dla formantu pola wyboru.

  12. Zamknij aplikację SimpleWPFApp.

  13. Na UIMap - kodowane jako Konstruktor Test interfejsu użytkownika, wybierz opcję Generuj kod.

  14. W polu Nazwa metody wpisz SimpleAppTest i wybierz polecenie Dodaj i Generuj.W ciągu kilku sekund test kodowane interfejsu użytkownika pojawia się i jest dodawana do roztworu.

  15. Zamknij UIMap-kodowane konstruktora Test interfejsu użytkownika.

    Plik CodedUITest1.cs pojawia się w edytorze kodu.

Czy uruchomić Test kodowane jako interfejsu użytkownika

  • Zlokalizuj plik CodedUITest1.cs CodedUITestMethod metodę, kliknij prawym przyciskiem myszy i wybierz Uruchomić testy.

    Podczas wykonywania kodowane jako test interfejsu użytkownika SimpleWPFApp jest widoczna.Prowadzi kroki, które nie w poprzedniej procedurze.Jednak gdy test próbuje zaznacz pole wyboru dla formantu pola wyboru, okno wyników badania pokazuje, że badania nie powiodło się.Ponieważ test próbuje zaznacz pole wyboru, ale nie jest świadomy, że kontrolka CheckBox jest wyłączone, dopóki pasek postępu jest wykonane w 100%.Można to poprawić i podobne problemy przy użyciu różnych UITestControl.WaitForControlXXX() metod, które są dostępne dla kodowane, testowanie interfejsu użytkownika.Następna procedura zostanie dowiedzione, za pomocą WaitForControlEnabled() metodę, aby rozwiązać ten problem, który spowodował ten test nie powiedzie się.Aby uzyskać więcej informacji, zobacz Tworzenie kodowane oczekiwania testów interfejsu użytkownika dla określonych zdarzeń podczas odtwarzania.

Edytować i ponownie uruchomić Test kodowane jako interfejsu użytkownika

  1. W oknie wyników badania, kliknij prawym przyciskiem myszy nieudany test i zaznacz Wyświetl szczegóły przetestować wyniki.

    CodedUITestMethod1 [wyniki] jest wyświetlany.

  2. W Śladu stosu błędów sekcji, wybierz pierwsze łącze obok TestProject1.UIMap.SimpleAppTest().

    Otwiera plik UIMap.Designer.cs z punktem błąd wyróżniony w kodzie:

    // Select 'CheckBox' check box
    uICheckBoxCheckBox.Checked = this.SimpleAppTestParams.UICheckBoxCheckBoxChecked;
    
  3. Aby rozwiązać ten problem, można sprawić, że kodowane jako test interfejsu użytkownika, poczekaj, aż sterowania pole wyboru włączyć przed przejściem do tego wiersza przy użyciu WaitForControlEnabled() metoda.

    Informacje dotyczące przestrogiPrzestroga

    Nie należy modyfikować pliku UIMap.Designer.cs.Za każdym razem, gdy generowanie kodu za pomocą UIMap - kodowane konstruktora Test interfejsu użytkownika, zostaną zastąpione żadnych zmian kodu, które wprowadzasz w pliku UIMapDesigner.cs.Jeśli trzeba zmodyfikować nagrane metodę, należy skopiować go do pliku UIMap.cs i zmienić jego nazwę.Plik UIMap.cs może służyć do zastąpienia metody i właściwości w pliku UIMapDesigner.cs.Należy usunąć odwołanie do oryginalnej metody w pliku UITest.cs kodowane, a następnie zastąpić nazwę zmieniono nazwę metody.

  4. W oknie Solution Explorer, odszukaj UIMap.uitest w projekcie kodowane jako test interfejsu użytkownika.

  5. Otwarcie menu skrótów dla UIMap.uitest i wybierz polecenie Otwórz.

    Kodowane jako test interfejsu użytkownika jest wyświetlane w edytorze kodowane przetestować interfejsu użytkownika.Teraz można wyświetlać i edytować kodowane jako test interfejsu użytkownika.

  6. W Działania interfejsu użytkownika okienko, wybierz metodę badawczą, która ma zostać przeniesiony do pliku UIMap.cs lub UIMap.vb, aby ułatwić funkcji kodu niestandardowego, który nie zostaną nadpisane, kiedy kod testu jest ponownie kompilowana.

  7. Wybierz polecenie Przenieś kod przycisk na pasku narzędzi kodowane interfejsu użytkownika edytora testów.

  8. Zostanie wyświetlone okno dialogowe Microsoft Visual Studio.To ostrzega użytkownika, że metoda ma zostać przeniesiona z pliku UIMap.uitest do pliku UIMap.cs i że nie będzie można edytować metoda, za pomocą edytora kodowane Test interfejsu użytkownika.Wybierz polecenie Tak.

    Metoda badania jest usuwany z pliku UIMap.uitest i nie jest wyświetlane w okienku Akcje interfejsu użytkownika.Aby edytować plik przeniesiony test, otwórz plik UIMap.cs z okna Solution Explorer.

  9. Na Visual Studio pasek narzędzi, wybierz polecenie zapisać.

    Aktualizacje do metody badania są zapisywane w pliku UIMap.Designer.

    Informacje dotyczące przestrogiPrzestroga

    Gdy zostaną przeniesione metodę, nie będzie można edytować go za pomocą edytora kodowane testów interfejsu użytkownika.Należy dodać niestandardowy kod i utrzymywać go przy użyciu edytora kodu.

  10. Zmień nazwę metody z SimpleAppTest() doModifiedSimpleAppTest()

  11. Dodać następujący wpis do pliku za pomocą instrukcji:

    using Microsoft.VisualStudio.TestTools.UITesting.WpfControls;
    
  12. Dodaj następujący WaitForControlEnabled() metoda przed wierszem naruszającym przepisy Kodeksu zidentyfikowano wcześniej:

    uICheckBoxCheckBox.WaitForControlEnabled();
    
    // Select 'CheckBox' check box
    uICheckBoxCheckBox.Checked = this.SimpleAppTestParams.UICheckBoxCheckBoxChecked;
    
  13. Zlokalizuj plik CodedUITest1.cs CodedUITestMethod metoda i albo w komentarz lub zmień nazwę oryginalnej metody SimpleAppTest() i zastąp go z nową ModifiedSimpleAppTest():

    [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.
                // For more information on generated code, see https://go.microsoft.com/fwlink/?LinkId=179463
                //this.UIMap.SimpleAppTest();
                this.UIMap.ModifiedSimpleAppTest();
            }
    
  14. W menu Kompiluj wybierz polecenie Kompiluj rozwiązanie.

  15. Kliknij prawym przyciskiem myszy CodedUITestMethod metodę, a następnie wybierz Uruchomić testy.

  16. Tym razem kodowane jako test interfejsu użytkownika pomyślnie zakończy wszystkie kroki w badaniu i Zakończono pomyślnie jest wyświetlany w oknie wyników badania.

Refaktoringu formantu w SimpleWPFApp

  1. W pliku MainWindow.xaml, w Projektancie zaznacz formant przycisku.

  2. U góry okna właściwości, wybierz odpowiednią wielkość button1 obok przycisk i zmień wartość na buttonA.

  3. W menu Kompiluj wybierz polecenie Kompiluj rozwiązanie.

  4. Na Test menu, a następnie kliknij polecenie Wybierz systemu Windows , a następnie wybierz Widok Test.

  5. W programie wybierz polecenie CodedUITestMethod1 pod Nazwę Test kolumny, a następnie wybierz Uruchamianie na pasku narzędziowym.

    Test zakończy się niepowodzeniem, ponieważ w UIMap jako button1 kodowane jako test interfejsu użytkownika nie można znaleźć formantu przycisku, który był pierwotnie zamapowany.Refaktoryzacja można kodowane jako interfejs użytkownika badań na uderzenie w ten sposób.

  6. W oknie wyników badania, kliknij prawym przyciskiem myszy nieudany test i zaznacz Wyświetl szczegóły przetestować wyniki.

    CodedUITestMethod1 [wyniki] pojawia się.

  7. W Śladu stosu błędów sekcji, wybierz pierwsze łącze obok TestProject1.UIMpa.SimpleAppTest().

    Otwiera plik UIMap.Designer.cs.Podstawowy błąd jest wyróżniane w kodzie:

    // Choose 'Start' button
    Mouse.Click(uIStartButton, new Point(27, 10));
    

    Należy zauważyć, że wiersz kodu we wcześniejszej części tej procedury jest za pomocą UiStartButton, która jest nazwą UIMap, zanim został refactored.

    Aby rozwiązać ten problem, można dodać formantu uporządkowano do UIMap za pomocą konstruktora kodowane Test interfejsu użytkownika.Kod test, aby użyć kodu, można aktualizować, jak pokazano w następnej procedurze.

Zamapuj uporządkowano kontroli i Edycja i ponownie uruchomić Test kodowane jako interfejsu użytkownika

  1. W pliku CodedUITest1.cs w CodedUITestMethod1() metodę, kliknij prawym przyciskiem myszy, wybierz Generuj kod testowo UI kodowane , a następnie wybierz Użyciu kodowane interfejsu użytkownika Test Kreator.

    UIMap-Coded interfejsu użytkownika Test konstruktora jest wyświetlany.

  2. Przy użyciu skrótu na pulpicie, utworzony wcześniej, uruchom aplikację SimpleWPFApp, który został utworzony wcześniej.

  3. Na UIMap-Coded konstruktora Test interfejsu użytkownika, przeciągnij kursor narzędzia Celownik do Start przycisk na SimpleWPFApp.

    Start button jest ujęta w niebieskie pole i konstruktora kodowane Test interfejsu użytkownika trwa kilka sekund do przetwarzania danych dla zaznaczonego formantu i wyświetlenie właściwości formantów.Należy zauważyć, że AutomationUId o nazwie buttonA.

  4. Właściwości formantu wybierz strzałkę w lewym górnym rogu, aby rozwinąć planie kontroli interfejsu użytkownika.Należy zauważyć, że UIStartButton1 jest zaznaczone.

  5. Na pasku narzędziowym, wybierz Dodaj formant do interfejsu użytkownika kontroli mapy.

    Stanu w dolnej części okna sprawdza działanie, wyświetlając zaznaczony formant został dodany do mapy interfejsu użytkownika kontroli.

  6. Na UIMap-Coded konstruktora Test interfejsu użytkownika, wybierz opcję Generuj kod.

    Coded Builder Test interfejsu użytkownika-Generuj kod pojawia się z informacji, że ma nowe metody jest wymagany i że kod zostanie wygenerowane dla zmian w planie kontroli interfejsu użytkownika.

  7. Wybierz polecenie generowania.

  8. Zamknij SimpleWPFApp.exe.

  9. Zamknij UIMap-Test kodowane jako interfejs użytkownika konstruktora.

    UIMap-Coded interfejsu użytkownika Test konstruktora trwa kilka sekund, aby przetworzyć zmiany interfejsu użytkownika kontroli mapę.

  10. W oknie Solution Explorer otwórz plik UIMap.Designer.cs.

  11. W pliku UIMap.Designer.cs poniżej Konstruktor w klasie wygenerowany kod UIMainWindow, rozwiń węzeł Właściwości regionu.Należy zauważyć, że public WpfButton UIStartButton1 właściwość został dodany.

  12. We właściwości UIStartButton1 rozwiń regionu kryteria wyszukiwania.Obwieszczenie SearchProperties jest ustawiona na "buttonA":

    public WpfButton UIStartButton1
            {
                get
                {
                    if ((this.mUIStartButton1 == null))
                    {
                        this.mUIStartButton1 = new WpfButton(this);
                        #region Search Criteria
                        this.mUIStartButton1.SearchProperties[WpfButton.PropertyNames.AutomationId] = "buttonA";
                        this.mUIStartButton1.WindowTitles.Add("MainWindow");
                        #endregion
                    }
                    return this.mUIStartButton1;
                }
            }
    

    Teraz można zmodyfikować kodowane jako test interfejsu użytkownika do korzystania z formantu ostatnio mapowane.Jak już wcześniej w poprzedniej procedurze Jeśli zachodzi konieczność zastąpienia jakichkolwiek metod lub właściwości w teście kodowane jako interfejsu użytkownika, należy to zrobić w pliku UIMap.cs.

  13. W pliku UIMap.cs dodaj konstruktor i określ SearchProperties właściwość UIStartButton właściwość, aby użyć AutomationID właściwość o wartości"buttonA":

    public UIMap()
            {
                this.UIMainWindowWindow.UIStartButton.SearchProperties[WpfButton.PropertyNames.AutomationId] = "buttonA";
            }
    
  14. W menu Kompiluj wybierz polecenie Kompiluj rozwiązanie.

  15. W widoku Test, zaznacz CodedUITestMethod1 pod Nazwę Test kolumny, na pasku narzędzi kliknij przycisk Uruchamianie.

    Tym razem kodowane jako test interfejsu użytkownika pomyślnie zakończy wszystkie kroki w teście.W oknie Wyniki testu zostanie wyświetlona stanu z Zakończono pomyślnie.

Zasoby zewnętrzne

Ff977233.collapse_all(pl-pl,VS.110).gifFilmy wideo

łącze do wideo

łącze do wideo

łącze do wideo

Ff977233.collapse_all(pl-pl,VS.110).gifRęce na lab

Wirtualne laboratorium MSDN: Wprowadzenie do tworzenia kodowane testy interfejsu użytkownika za pomocą programu Visual Studio 2010

Ff977233.collapse_all(pl-pl,VS.110).gifCZĘSTO ZADAWANE PYTANIA

Kodowane testy interfejsu użytkownika — często zadawane pytania - 1

Kodowane testy interfejsu użytkownika — często zadawane pytania -2

Ff977233.collapse_all(pl-pl,VS.110).gifForum

Visual Studio UI automatyzacji testów (w tym CodedUI)

Zobacz też

Koncepcje

Weryfikowanie kodu przy użyciu kodowanych testów interfejsu użytkownika

Obsługiwane konfiguracje oraz platformy zakodowanych testów interfejsu użytkownika i nagrywania akcji

Inne zasoby

Wprowadzenie do programu WPF Designer

Edycja zakodowanych testów interfejsu użytkownika za pomocą edytora kodowanych testów interfejsu użytkownika