Resultado inesperado ejecutando unittests

Israel Fernández Cabrera iferca en gmail.com
Sab Jul 28 01:10:57 CEST 2007


Hola:

Estoy haciendo algunas pruebas para automatizar la corrida de unittest
desde un IDE, brindando una GUI para ello pero en ese proyecto me
encuentro con un problema que el código que a continuación adjunto
ilustra:

<código require="salvar en fichero de nombre import_tests.py">
class PruebasDePrueba(unittest.TestCase):
   def testUnTest(self):
       a = 2
       b = 1
       self.assertEquals(a, b)

def runTests():
   loader = unittest.TestLoader()
   result = unittest.TestResult()
   suite = loader.loadTestsFromName("import_tests.PruebasDePrueba")
   suite.run(result)
   print "Errores: ", len(result.errors)
   print "Fallos: ", len(result.failures)

if __name__ == "__main__":
   runTests()
   raw_input("Modifique el test y presione ENTER para continuar")
   runTests()
</código>

Notas: Ya se que eso de modificar un test para que corra no está
correcto, es solo un ejemplo, no se prueba nada en absoluto, es solo
un ejemplo.

El objetivo de este código es ilustrar como corridas consecutivas de
los unittest demuestran que a pesar de que la función "runTests()"
recarga los tests utilizando unittest.TestLoader en la segunda corrida
al parecer no se recarga nuevamente el tests sino que se utiliza la
misma instancia que se cargó la primera vez.
El código ejecuta los tests en: "PruebasDePrueba(unittest.TestCase):",
solicita al usuario que haga cambios en los tests (igualar las
variables 'a' y 'b'  de PruebasDePrueba.testUnTest) para luego
ejecutarlo de nuevo. El código se comporta de la misma manera si se
extrae la clase PruebasDePrueba para otro módulo.
En la lista de python.org Gabriel (quien creo que también es
suscriptor de python-es) me recomendó que ejecutara los tests desde un
proceso diferente y que comunicara la GUI con este mediate IPC. Esa,
claramente, podría ser una solución, pero me gustaría por ahora buscar
una explicación a lo que me sucede y no un workaround para evitarlo.

De antemano gracias
S en lu2

-- 
____________________
Israel Fdez. Cabrera
iferca en gmail.com
Linux registered user No.: 270292
[http://counter.li.org]

 . 0 .
 . . 0
 0 0 0




Más información sobre la lista de distribución Python-es