Ausführen von UI-Automatisierungstests auf dem Build-Server

9

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?

    
andreja 05.05.2009, 14:40
quelle

4 Antworten

3

Sie haben nicht viele Optionen. Ich werde die zwei, die ich kenne, die am meisten bevorzugte Option zuerst auflisten:

  • Richten Sie auf Ihrem Build-Server eine virtuelle Maschine ein. Ihre Builds werden in der virtuellen Maschine ausgeführt. Sie können den Host (auch als Buildserver bezeichnet) sperren, um die Sicherheit zu gewährleisten.
  • Halten Sie jemanden ständig an. Dies verursacht natürlich ein Sicherheitsproblem. Sie können dieses Problem ein wenig beheben, indem Sie die Maus, die Tastatur und den Bildschirm entfernen und nur über RDP oder ähnliches auf den Buildserver zugreifen.

Bearbeiten

Sehen Sie sich diese TestComplete-FAQ an: Kann TestComplete Skripts ausführen, wenn der Computer gesperrt ist?

    
Lieven Keersmaekers 05.05.2009, 15:06
quelle
1

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.

    
kay.herzam 05.05.2009 15:04
quelle
1

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.

    
Bruce McLeod 05.05.2009 23:31
quelle
0
  

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?

    
Ken McCormack 06.05.2009 00:26
quelle