Ho un problema con cui uccidere il lancio della finestra di comandocmd / k. Per sostituire nel contesto, voglio lanciare casi di test automatici (con SAHI Framework, si riunisce a Selenium per chi lo sa). Quindi, devo lanciare il primo file .bat che contiene le suite di test. Per testare un proxy deve essere avviato, quindi devo lanciare tutto nello stesso posto perché abbiamo impacchettato tutte quelle cose in un server Jenkins.
Quindi, per ricapitolare, devo creare uno script con questi passaggi:
- Imposta variabili globali
- Avvia il server proxy (in un altro terminale)
- Avvia suite di casi di test
Codice :
rem Start proxy server for handle tests
start cmd /k sahi.bat
rem Starting test suites
testrunner.bat tests.suite http://website.fr/ firefox
Quindi, questi passaggi sono fatti e funzionano bene. Ma devo chiudere il proxy del server aperto nel passaggio 2 dopo il passaggio 3.
Come posso uccidere sahi.bat dopo i casi di test?
risposte:
0 per risposta № 1Esistono diversi modi per ottenere ciò che stai cercando. La mia soluzione:
@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
avvierà una nuova console con il proxy. Il titolo della finestra sarà nome utente: Proxy. Prova ad aprire una finestra con START "test" cmd se non sei sicuro del titolo della finestra.
Adesso START /WAIT "testrunner.bat tests.suite http://website.fr/ firefox" && taskkill /FI "WINDOWTITLE eq <username>: Proxy"
farà due cose: eseguirà i test in una nuova console e ucciderà il server proxy. &&
significa che entrambi i comandi verranno eseguiti uno dopo l'altro. Ma questo non è abbastanza in quanto il tuo script avvia i test e successivamente uccide immediatamente il proxy. Per evitare ciò, aggiungiamo semplicemente /WAIT
al nostro comando per fare in modo che lo script esegua il comando kill non appena termina il pipistrello di prova.
TL; DR
- Avviare il proxy e chiamare la finestra "nome utente: proxy"
- Avvia i test e termina il proxy dopo aver completato i test identificando la finestra a destra usando il titolo "username: Proxy"