Changes between Version 3 and Version 4 of Version2/Desarrollo/RunTest


Ignore:
Timestamp:
Feb 28, 2011, 10:06:19 PM (8 years ago)
Author:
adelcastillo
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Version2/Desarrollo/RunTest

    v3 v4  
    44 
    55Una 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.   
     6
     7== Dependencias ==
     8Lo único que necesita es Python3. Instalando el paquete en Ubuntu o Debian, que no sobreescribe al anterior python (sólo añade el ejecutable python3); ya se debe ejecutar sin problemas.
    69
    710== Tipos de tests ==
     
    1417       * Muestra por pantalla la salida estandar que ha tenido el script.
    1518       * Muestra por pantalla la salida de error que ha tenido el script.
    16  1. test de python: 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. Su extensión deben ser ''.pytest''
     19 1. test de python: 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. Su extensión deben ser ''.pytest''. Más sobre los test de python en ficheros en: http://docs.python.org/library/doctest.html#simple-usage-checking-examples-in-a-text-file
     20 1. test de shell: sacada la idea de python sea programado en el mismo runtest la misma idea para bash. Su extensión deben ser ''.shtest'' y no deben tener permiso de ejecución. Para saber más sobre test de bash:[Test de Shell].
    1721 1. pre-test: no son realmente tests pero tiene exactamente el mismo funcionamiento que test de script. Se usan para preparar cosas para el test. Son scripts que se ejecutan antes un test. Tienen el mismo nombre que el test pero se añade la extensión ''.pre''. Deben tener permiso de ejecución. Si fallan el test no se ejecutará. No son necesarios para el test.
    1822 1. post-test: iguales que los anteriores pero se ejecutan después del test y tienen extensión ''.post''. No son necesarios para el test.
     
    2630 1. Ejecutar los test por orden alfabético:                         
    2731    1. Busca si tiene pre-test sino lo obvia. Si existe errores en el pre-test el test no se ejecuta.                                                                                   
    28     1. Ejecuta el test ya sea de script o de python.
     32    1. Ejecuta el test sea del tipo que sea.
    2933    1. Si encuentra post-test este se ejecuta siempre. Pueden existir errores.
    3034 1. Por último, si cleanup es encontrado se ejecuta.
     
    4852alex@Huevo ~/projects/opengnsys/branches/version2/runtest/tests $
    4953}}}
     54
     55=== Test de Shell ===
     56
     57La estructura del fichero es bastante simple. Runtest considera un comando la linea que comience por el carácter '$'. Cuando encuentra un comando las lineas siguiente son el resultado que el comando, al ejecutarse, va a mostrar. Se consideran resultado todas las lineas hasta que:
     58 * O se encuentre una vacía.
     59 * O se encuentre otro comando.
     60 * O se llegue al final del fichero.
     61
     62Cualquier otra linea que no cumpla el criterio de comando o resultado será considerado como un comentario, que pueden ser usado para explicar en que consiste el test y que se espera comprobar con él.
     63
     64En el caso que se necesitará tener lineas en blanco en el resultado de un comando sustituirlas por <BLANKLINE>:
     65{{{
     66$ cat fichero_cualquiera
     67Esto es un fichero
     68<BLANKLINE>
     69que tiene varias
     70<BLANKLINE>
     71líneas vacías.
     72<BLANKLINE>
     73
     74}}}
     75
     76Para ver un ejemplo completo se puede mirar el test14 de los tests del propio Runtest.
     77
     78=== Sobre las excepciones ===
     79
     80Según la versión de Python las excepciones pueden mostrarse de manera distinta. Actualmente se usa Python 3.2 que es la última estable de Python. Puede que los test de Runtest muestren errores por esa razón pero no es debido a un mal funcionamiento del script.