Aby wykonać testy kodowanego interfejsu użytkownika w Silverlight 5, należy użyć aktualizacji pomocnika automatyzacji kodowanego interfejsu użytkownika: tutaj: Visual Studio Gallery: UI Test Plugin for Silverlight Stary, który jest dostarczany z VS2010, działa tylko na SL4 i poniżej.
SL5 został zaimplementowany nieco inaczej, i przełamał testy kodowanych interfejsów, dlatego też prosi deweloperów o przejście na VS2012 i nową wtyczkę automatyzacji UI (jak odkryliście).
Po zainstalowaniu pliku wykonywalnego UITestPluginForSilverlight.msi należy odwołać się do tych zestawów w części projektu Silverlight (która już jest).
O ile pamiętam, powodem, dla którego testy kodowanego interfejsu użytkownika zepsuły się w VS2010, ale działały w VS2012, jest to, że pliki SLIM i SL4 UIMap.designer.cs generowane przez rejestratory testowe nie są zbyt kompatybilne z każdym z nich. inny.
Nagrania SL4 Wygenerowane z pomocnikiem SL4 do automatyzacji nie będą działały z wersją narzędzia AutiomationHelper w wersji SL5. Jednak SL5 Autiomation Helper będzie działał z nagraniami SL4, jeśli te nagrania są generowane przez VS2012.
Aby opracować: Podczas korzystania z rejestratora tworzy on plik UIMap. Plik mapa ma trzech porcjach do niego:
- XML lista wszystkich zarejestrowanych metod
- Designer wygenerowany kod Behind częściowej klasy.
- Użytkownik klasy częściowej.
Po sprawdzeniu wygenerowanego przez projektanta kodu znajdującego się za plikiem można w rzeczywistości stwierdzić, że rejestrator generuje dużą ilość kodu w celu znalezienia elementów sterujących i interakcji z nimi.
Dla każdego elementu sterującego rejestrator wykrywa wystąpienie odpowiedniego obiektu testu/interakcji.
Podczas zadeklarowania tych obiektów rejestrator definiuje kilka właściwości wykrywalnych/możliwych do wyszukania. Następnym razem, gdy odtwarzanie zostanie wykonane, bierze te właściwości i używa ich do znalezienia właściwej kontroli.
Ponadto wszystkie elementy sterujące mają element nadrzędny, więc obowiązkowe ustawienie rekordera określa element nadrzędny interfejsu użytkownika dla każdej wykrytej kontroli.Dla SL4 i SL5 rodzice są w następujący sposób:
- Okno Przeglądarka
- HTML Page
- Div (trzymając runtime silverlight)
- SL Object (SL Runtime plugin)
- główna SL UI Element (zwykle Squigly Buzy wskaźnik)
- Nawigacja Ramki
- Strony wewnętrzne
- Kontrole
Konstruktor:
- nadrzędna sterowania/Interakcje Object
Szukaj nieruchomości:
- stronie tytułowej: Całkowity ciąg znaków, który jest wyświetlany tytuł okna przeglądarki.
- Instance Number: (zaczyna się od 1 na listach ... co jest dziwne)
- sterowania ID: (określone przez imię lub x: Name atrybutów XAML)
- Display Name: To jest niepewna dla pola kombi/elementy listy, jak to działa łącząc co staje się w polu kombi/lista elementów pozycji w połączeniu z liczbą instancji tej pozycji, na przykład:
pole kombi z dwóch elementów, każdy o nazwie „Wykaz egzemplarzy” mogą być wykryte przez następujące wyświetlane nazwy:
"Element listy: 1" i "Pozycja listy: 2"
- Dowolna kombinacja i permutacja atrybutów wyszukiwania (można je wyszukać).
Krótko mówiąc, rzeczywiste obiekty interakcji generowane przez nagrywarki różnią się w SL4 i SL5. Oznacza to, że nie można pobrać jednego UIMap.designer.cs i zamienić go na inny. Struktura testowa (i związane z nią obiekty interakcji używane w pliku UIMap.designer.cs) nie są kompatybilne z binariami. Dlatego odtwarzanie nie działa.
Używasz najnowszego Internet Explorera zgodnie z sugestią na połączonej stronie rozszerzenia? – jv42
@ jv42 Tak, próbowałem tego z IE8 i 9 – tnw
kilka razy zakodowane testy UI są dziwne, spróbuj ręcznie kliknąć kontrolkę silver-light, podczas gdy szukają kontroli, aby zobaczyć, czy ją znajdzie. –