2011-06-15 35 views
9

Necesito averiguar este problema aparentemente muy simple en el archivo .bat de Windows. He estado usando Linux durante los últimos 10 años a tiempo completo, por lo que estoy en un territorio bastante desconocido en lo que respecta a los guiones .bat.Haga que el archivo .bat continúe después de ejecutar un comando

Tenemos algunas unidades de pruebas que necesitan ejecutarse desde este archivo .bat, y se debe generar una compilación después de que se hayan ejecutado las pruebas.

El archivo bat en sí es muy simple, yo estaba pensando en simplemente encadenar los comandos:

cls 
echo "Running test suite - CRMSync" 
echo 
echo 
REM from command: --static-backup 
phpunit --bootstrap test/bootstrap_test.php --verbose --log-junit    
echo "Running phploc for CRMSync" 
phploc --count-tests --verbose > C:\CRMsync\testResults\phploc\index.html 
echo "Executing phing" 
phing 

Ahora, lo suficientemente simple, excepto nada se ejecuta el comando pasado PHPUnit. ¿Cómo trato con esto? Las pruebas de la unidad funcionan bien, pero sospecho que incluso podría estar en la unidad de prueba lib que se mata el proceso. ¿Hay alguna manera de bifurcar el proceso de alguna manera u obtener los otros comandos a continuación para ejecutar?

Gracias, señores, como siempre, cualquier ayuda muy apreciada.

+1

estás buscando en la dirección incorrecta: si phpunit falla, el lote continuará – CharlesB

+1

¿phploc y phing se ejecutan si comentas la llamada phpunit? – CharlesB

+2

Esto es más de una cosa [su] ... – fretje

Respuesta

8

Similar a la publicación ujifgc, uso "start/b ..." en estas situaciones. Si encapsula la llamada a phpunit en otro archivo por lotes, puede usar "call".

+0

Esto no espera que se complete el comando antes de pasar a la siguiente línea –

4

¿Es phpunit en sí mismo un archivo por lotes (no hago mucho PHP, entonces no estoy familiarizado con la herramienta)? Si es así, trate de usar:

call phpunit --bootstrap test/bootstrap_test.php --verbose --log-junit 
2

Trate start /WAIT phpunit ... al proceso de tenedor y esperar a que él o sólo start phpunit ... de bifurcación y continúa. La ayuda está aquí: start /?

+0

¡Sí! Gracias. Lo investigaré mañana, amigo. – stefgosselin

5

Tuve el mismo problema para un script de desarrollo que hice. Y probé todas las soluciones dadas sin tener éxito. Al final, lo hice con cmd/C.

Desde las ventanas docs lo hará:

comando Ejecutar y luego terminar

Así, por ejemplo, puede utilizar la siguiente manera:

cls 
echo "Running test suite - CRMSync" 
echo 
echo 
REM from command: --static-backup 
cmd /C phpunit --bootstrap test/bootstrap_test.php --verbose --log-junit    
echo "Running phploc for CRMSync" 
cmd /C phploc --count-tests --verbose > C:\CRMsync\testResults\phploc\index.html 
echo "Executing phing" 
cmd /C phing 

espero que encuentre esto es útil

+0

Esta es la forma correcta de hacerlo en mi experiencia: espera a que se complete el comando antes de pasar a la siguiente línea –

Cuestiones relacionadas