2012-07-20 327 views
5

En una máquina Windows 7 si ejecuta un comando PHPUnit selenio como esto manualmente en el terminal:Cómo evitar que el archivo de proceso por lotes (.bat) se cierre al ejecutar comandos?

phpunit --verbose --log-junit _selenium_tests\results\home.xml _selenium_tests\frontend\home.php 

Se genera un navegador y ejecuta la prueba muy bien. A continuación, muestra lo siguiente en la pantalla:

Time: 10 seconds, Memory: 3.50Mb 
OK (1 test, 3 assertions) 

Y el terminal permanece abierto.

Ahora, si copio y pego el comando exacto en un archivo vacío y lo guardo como test.bat y hago clic en él, también ejecuta la prueba. Puedo ver el navegador abierto y ejecutar todas las pruebas. El único problema es que cierra el indicador de la terminal inmediatamente después. Entonces no puedo ver el resultado anterior.

Un problema aún mayor es que, dado que cierra el terminal si agrego más comandos para otras pruebas después de ese inicial, no se ejecutan.

He intentado añadir:

pause 

al final del archivo del palo, pero sin suerte, todavía se cierra. ¿Alguna idea de cómo evitar esto y poder ejecutar un comando tras otro sin que el terminal se cierre?

Respuesta

10

Su pregunta es similar a this one. Intente usar call frente a su comando. Si ejecuta un archivo .bat desde otro archivo .bat y no usa call, el control no regresa al primer archivo por lotes, por lo que pause no se ejecuta.

+0

tío eres increíble, simplemente haciendo call antes de que todos los comandos lo hicieran. Ahora corrieron uno tras otro y la terminal nunca se cerró. ¡Gracias! – TK123

+0

Me alegro de ser de ayuda. – alexg

0
  • Trate cmd /K phpunit --verbose --log-junit _selenium_tests\results\home.xml _selenium_tests\frontend\home.php

    La opción /K en cmd /K stringrealiza el comando especificado por la cadena, pero sigue siendo,
    ver http://www.computerhope.com/cmd.htm

  • Además, no sé el tipo de archivo de la phpunit comando que ejecutas - No estoy familiarizado con el selenio. Si se trata de un archivo por lotes (es decir, termina en .bat), no puede llamarlos desde otro archivo por lotes: nunca se ejecutará todo lo que esté debajo de la llamada al segundo archivo por lotes.

    Luego necesita usar el comando CALL. CALLpermite a un usuario para ejecutar un archivo por lotes desde otro archivo por lotes,
    ver http://www.computerhope.com/call.htm

Cuestiones relacionadas