2017-02-13 3 views
0

Ich habe ein Problem, Befehlsfenster Start mit cmd/k zu beenden. Um im Zusammenhang zu ersetzen, möchte ich automatische Tests Fälle (mit SAHI Framework, es resemble zu Selenium für wer weiß). Also, ich muss zuerst .bat Datei, die Testsuiten enthält. Um zu testen, dass ein Proxy so gestartet werden muss, muss ich alles an der gleichen Stelle starten, da wir das ganze Ding in einen Jenkins-Server gepackt haben.Starten Sie Cmd/k und schließen Sie dann am Ende einer anderen Charge

Also für rekapitulieren habe ich ein Skript mit diesen Schritten erstellen:

  1. Set Globals Variablen
  2. Starten Sie Proxy-Server (in anderen Terminal)
  3. Einführung Suiten von Tests Fälle

Code:

rem Start proxy server for handle tests 
start cmd /k sahi.bat 

rem Starting test suites 
testrunner.bat tests.suite http://website.fr/ firefox 

Also, diese Schritte sind fertig und funktioniert gut. Aber ich muss den Server-Proxy schließen, der in Schritt 2 nach Schritt 3 geöffnet wurde.

Wie kann ich die sahi.bat nach Tests Fällen töten?

Antwort

0

Es gibt verschiedene Möglichkeiten, um das zu erreichen, wonach Sie suchen. Meine Lösung:

@ECHO OFF 
START "Proxy" sahi.bat 
START /WAIT testrunner.bat tests.suite http://website.fr/ firefox && taskkill /FI "WINDOWTITLE eq <username>: Proxy" 

START "Proxy" sahi.bat wird eine neue Konsole mit Ihrem Proxy starten. Der Fenstertitel lautet Benutzername: Proxy. Versuchen Sie einfach, ein Fenster mit START "test" cmd zu öffnen, wenn Sie sich über den Fenstertitel nicht sicher sind.

Jetzt wird START /WAIT "testrunner.bat tests.suite http://website.fr/ firefox" && taskkill /FI "WINDOWTITLE eq <username>: Proxy" zwei Dinge tun: Es wird Ihre Tests in einer neuen Konsole ausführen und den Proxy-Server killen. && bedeutet, dass beide Befehle nacheinander ausgeführt werden. Aber das ist nicht genug, da Ihr Skript die Tests starten und danach den Proxy sofort beenden würde. Um dies zu vermeiden, fügen wir unserem Befehl einfach /WAIT hinzu, damit das Skript den Befehl kill ausführt, sobald der Testschläger beendet wird.

TL; DR

  • Starten Sie Proxy und rufen Sie das Fenster "username: Proxy"
  • starten Tests und den Proxy töten, nachdem die Tests durchgeführt werden, das rechte Fenster Identifizierung des gegebenen Titel mit „username : Proxy "
+0

Genau das, was ich gesucht! Danke, ich habe deinen Code ein wenig aktualisiert, aber es funktioniert perfekt :) – spasfonx

Verwandte Themen