= !RunTest = !RunTest es un script simple para ejecutar pruebas de manera automatizada. El código actual se encuentra en source:branches/version2/runtest Una vez instalado, es decir, una vez que se ha copiado el ejecutable a algún directorio del path como /usr/local/bin, se accede al directorio de tests a probar y se ejecuta sin argumentos. Por ahora es necesario que se ejecute en el mismo directorio donde los test se encuentran. == Funcionamiento == 1. Intenta ejecutar un script que se llame prepare o prepare.* (siendo asterisco cualquier extensión). Sino lo encuentra lo obvia. Pueden existir errores y en tal caso no se ejecutará ningún test. 1. Ejecutar los '''test de script''' que constan de tres partes: 1. El pre-test: que se ejecuta antes del test. Tiene el mismo nombre de fichero que el test pero añadiendo al final '.pre'. Si se encuentra error no se ejecuta el test ni el post-test y se continua con el siguiente test. El pre-test es opcional, puede o no puede estar. Si se encuentra un pre-test que no tenga asociado un test, el pre-test nunca se ejecutará. 1. El test: que es un script que comprueba el funcionamiento de la utilidad. Si se encuentra error se considera que ha fallado el test. 1. El post-test: que se ejecuta siempre después del test haya fallado o no. También puede mostrar error. El post-test es opcional, puede o no puede estar. Si se encuentra un post-test que no tenga asociado un test, el post-test nunca no se ejecutará. 1. Ejecuta los '''test de python''' que constan de tres partes: 1. El pre-test: cuyo funcionamiento es exactamente igual que en los test de script. 1. El test: que en este caso no son unos ejecutables, sino un fichero de doctest de python. Si se encuentra errores se considera que ha fallado el test. 1. El post-test: cuyo funcionamiento es exactamente igual que en los test de script. 1. Por último busca un script cleanup o cleanup.* para ejecutarlo. Sino lo encuentra lo obvia. == Errores == Cuando cualquier script devuelve algo distinto de 0 se considerá que ha fallado, se lee su salida estándar y su salida de errores para mostrarlo por pantalla. En caso de que devuelva 0 no se mostrará nada, aunque el script haya escrito en la salida estándar o de errores y se considerará que no ha habido errores. == Valor de retorno == El script devuelve el número de test que han fallado. Si no ha habido errores devolverá 0 y no mostrará nada. Si los ha habido entonces mostrará toda la información que el test o el script haya proporcionado, además de dónde ha fallado. == Test == !RunTest también tiene tests que comprueban su funcionamiento. Vamos a la carpeta test del y ejecutamos runtest allí. También es útil para entender el funcionamiento de runtest