Wie zum programmgesteuerten start einer WPF-Anwendung, die von einem unit test?
Problem
VS2010 und TFS2010 unterstützen die Erstellung von so genannten Tests der codierten UI. Alle demos, die ich gefunden habe, beginnen Sie mit der WPF-Anwendung bereits im hintergrund laufen, wenn Sie den Test der Codierten UI beginnt oder die EXE-Datei gestartet wird mit dem absoluten Pfad.
Ich würde jedoch gerne anfangen meine WPF-Anwendung unter test der unit-test-code. So werde es auch arbeiten auf dem server zu bauen und auf meine peer ' s arbeiten kopiert.
Wie kann ich erreichen, dass?
Meine Entdeckungen so weit
a) Dieser post zeigt wie man ein XAML Fenster. Aber das ist nicht das, was ich will. Ich will die App zu starten.xaml denn es enthält XAML-Ressourcen und es ist eine Anwendung der Logik in der code-behind-Datei.
b) Die zweite Abbildung auf dieser Beitrag zeigt eine Linie, die mit
ApplicationUnterTest calculatorWindow = ApplicationUnderTest.Launch(...);
ist konzeptionell so ziemlich das, was ich Suche, außer dass wieder dieses Beispiel verwendet einen absoluten Pfad der ausführbaren Datei.
c) Eine Google-Suche nach "Programmgesteuert starten WPF" hat auch nicht geholfen.
InformationsquelleAutor Lernkurve | 2010-03-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor Lernkurve
Bin ich etwas ähnliche in VS2008 und das manuelle erstellen der tests mit dem UI-Spy zu helfen, mich zu identifizieren, die Steuerung und einige helper-Methoden, die nicht dargestellt sind, um die trigger-Schaltfläche klickt, und überprüfen Sie die Werte auf dem Bildschirm. Ich benutze das Prozess-Objekt, um die Anwendung zu starten ich Teste in der TestInitialize-Methode und in der TestCleanup Methode, die ich beenden Sie den Prozess. Ich habe eine Reihe von Möglichkeiten, um sicherzustellen, dass der Prozess komplett geschlossen in der Bereinigung. Für den absoluten Pfad problem, das ich nur programmgesteuert lookup den aktuellen Pfad, und fügen Sie meine-Anwendung ausführbare Datei. Da ich nicht weiß, wie lange es dauert, bis die Anwendung zu starten, legte ich AutomationId in mein Hauptfenster und setzen Sie ihn auf "UserApplicationWindow" und warten Sie, um sichtbar zu werden, natürlich, Sie haben etwas, was Sie warten könnte. Schliesslich benutze ich die MyTestClass als Basis-Klasse und erweitern Sie die Klasse für die verschiedenen tests.
InformationsquelleAutor RodKnee
Landete ich mit ApplicationUnderTest.Starten Sie (...) ( MSDN ), die automatisch erstellt, wenn die Aufnahme eines automatisierten Tests mit Microsoft Test Manager.
InformationsquelleAutor Lernkurve
Hier ist, was ich gerade gehackt zusammen, der es schafft, unit-Tests caliburn micro ein wenig:
InformationsquelleAutor Henrik
Dies ist vielleicht nicht ganz das, was Sie wollen, aber ich hatte ein ähnliches problem mit meinem WPF-apps und deren tests der codierten UI. In meinem Fall bin ich mit der TFS-build (via den Lab-Vorlage) und deren Bereitstellung nimmt den Ausgang von build; ein MSI und installiert, dass auf das Ziel, die tests laufen dann gegen die installierte software.
Nun, weil wir wollen, um zu testen, gegen die installiert software, die wir Hinzugefügt haben test initialisieren Methoden, GUI-start wir testen durch Aufruf der MSI-API, um das Installationsverzeichnis für das Produkt/Komponenten-GUIDs in unserem installer.
Hier ein code-Auszug, denken Sie daran, ersetzen Sie Ihre Produkt-und Komponenten-GUIDS von Ihrem Installateur)
Und hier ist die API-wrapper-code:
InformationsquelleAutor Pete Stensønes