2009-06-03 6 views
16

Bei Projekten mit End-to-End-Tests, die die GUI steuern, ist es schwierig, die Tests auf einer Entwickler-Workstation auszuführen, da der GUI-Automatisierungstreiber den Desktop beeinträchtigt. Sie bewegt die Maus, entfernt den Fokus von den Apps, die wir verwenden möchten, und kann Text in die falsche Anwendung eingeben, wenn wir während eines Testlaufs zu einer anderen App wechseln.Gibt es etwas wie xvfb oder xnest für Windows?

Unter Linux haben wir dies gelöst, indem Sie die Anwendung auf einem virtuellen X-Server (xvfb oder xnest) testen. Mit xnest können wir die laufenden Tests beobachten, aber trotzdem den echten Desktop ohne Störungen nutzen.

Gibt es etwas Entsprechendes für Windows?

Antwort

5

Ich habe ein Freeware-Programm namens "RunProcess.exe" von Frank P. Westlake gefunden, das einen Prozess ausführen kann, der an den Desktop einer nicht interaktiven WindowStation (z. B. außerhalb des Bildschirms) gebunden ist. Es gibt jedoch keine Quelle.

Deshalb habe ich meine eigene Version (einfacher als Frank Westlake) mit Java und JNA implementiert. Es befindet sich im Window Licker Repository im Tools-Modul. Die Klasse heißt com.objogate.wl.win32.RunOnDesktop. Irgendwann kann ich es nach C portieren und es zu einer normalen Kommandozeile machen .exe, oder es vielleicht in eine Ant-Aufgabe verwandeln, um Tests außerhalb des Bildschirms auszuführen.

+0

jedermann bekam Glück mit dieser? –

+0

Ich versuche, die Lösung für das gleiche Problem zu finden.Habe sonst jemand versucht es? – DamianS1987

+0

Wie wäre es mit der Tastatur und Maus Probleme, es aus dem Bildschirm @Nat? – gumuruh

5

Sie können "Desktops" Anwendung von SysInternals Paket verwenden. Führen Sie UI-Tests auf einem Desktop aus und arbeiten Sie an einem anderen.

+0

Leider Ich glaube nicht, dass das funktionieren wird. Was ich will, ist einen Prozess von der IDE (auf meinem Haupt-Desktop aus) und für diesen Prozess "Fenster auf einem Offscreen-Desktop erscheinen zu lassen. Das ist nicht die Art, wie" Desktops " scheint zu funktionieren. – Nat

+0

Ich hatte das gleiche ist verklagen und diese Lösung hat für mich funktioniert. Sie können Ihren Prozess direkt vom "versteckten" Desktop aus starten und dort weiterarbeiten und zu Ihrem Haupt-Desktop wechseln, danke Yauheni Sivukha für diese Lösung. – sam

+0

Löst das wirklich die ursprüngliche Frage, wo ein Problem war, dass der Automationstreiber die Maus bewegt ? Dann müsste es separate Mauszeiger/Eingabe auf den verschiedenen Desktops geben. – Zitrax

0

Ich habe gerade die Multiple-Desktop-Methode auf meinem Windows 10-Rechner versucht. Ich führe Selenium Javascript Tests durch. Ich startete die Tests auf einem anderen Desktop und wartete darauf, dass der Browser geöffnet wurde, und wechselte dann zu meinem Hauptdesktop. Aber an der gleichen Stelle, wo der Chrome-Browser das aktive Fenster werden würde, jetzt ist es gezwungen, mich tatsächlich zurück zu diesem Desktop :-(

ich glaube, ich werde RunProcess.exe versuchen, oder Nat-Lösung.

+1

Ich habe gerade versucht, das Sysinternals Desktops-Tool https: // technet.microsoft.com/en-us/sysinternals/cc817881.aspx und es funktioniert OK für mich. Als ich einen Test auf diesem anderen Desktop startete, gab es keine Interaktion mit meinem ursprünglichen Desktop :-) – LeeD

Verwandte Themen