Wir verwenden UI Automation und Nunit, um Tests für die UI für die WPF-Anwendung zu erstellen. Wir haben Tests erstellt, die gut funktionieren, wenn Sie sie von einem lokalen Computer ausführen. Diese Tests laufen auf unserem Build-Server niemals erfolgreich (mit TeamCity). Build hängt immer nach dem Öffnen des Anwendungsfensters. Aber wenn ich angemeldet bin (Remote-Desktop), werden auf unserem Build-Server auch alle UI-Automation-Tests erfolgreich ausgeführt. Ich vermute also, dass es wahrscheinlich etwas mit der aktiven Windows-Sitzung zu tun hat. Irgendwelche Ideen, wie wir unseren Build-Server davon überzeugen können, eine aktive Windows-Sitzung zu erstellen, oder irgendwelche anderen Lösungen, um diese Tests auf dem Build-Server auszuführen?
Sie haben nicht viele Optionen. Ich werde die zwei, die ich kenne, die am meisten bevorzugte Option zuerst auflisten:
Bearbeiten
Sehen Sie sich diese TestComplete-FAQ an: Kann TestComplete Skripts ausführen, wenn der Computer gesperrt ist?
OK, ich rate nur hier.
Versuchen Sie, den TeamCity-Dienst mit einem lokalen Build-Server-Benutzer anstelle des Systemkontos auszuführen. Vielleicht müssen Sie sich einmal mit diesem Konto anmelden, bevor Sie einen neuen Build starten.
Es klingt definitiv so, als müssten Sie Ihre Tests mit einer interaktiven Sitzung im Gegensatz zu einem Service durchführen. Das Hinzufügen von "Dienst zur Interaktion mit dem Desktop zulassen" könnte helfen, aber dies wird anscheinend nicht mehr in Vista unterstützt.
Wenn Sie Ihre Builds interaktiv als Befehlszeile ausführen können, sollte das nicht funktionieren.
Früher haben wir unsere UIAutomation-Tests mit dem Visual Studio 2008 Load Agent ausgeführt, um sie zu verteilen, und zwar ohne Probleme als Kommandozeilen-Tool auf VMs.
Ich stimme auch zu, dass Sie wahrscheinlich keine UI-Tests auf einem Build-Server als Teil Ihres täglichen Builds ausführen sollten.
Build hängt immer nach dem Öffnen des Anwendungsfensters.
Tests, die die Benutzeroberfläche instanziieren? Das wird nicht funktionieren, z.B. Wenn Sie einen modalen Dialog erhalten, wird der Build hängen bleiben. Dies ist der Grund, warum das MVP-Muster erfunden wurde, um den aktiven Präsentationscode von einer konkreten Ansicht zu isolieren.
Verwenden Sie in Ihren automatisierten Tests eine Scheinansicht?
Tags und Links wpf user-interface testing teamcity automation