jueves, 22 de septiembre de 2016

Django: Test en eclipse

El problema

Ejecutar un test automático desde el eclipse sin necesidad de trabajar con una consola aparte. Existen librarias que mejoran el soporte a los test automáticos (seran tema de otro post), pero si no queremos llegar a tanto y pretendemos realizar la ejecución o, también imprescindible, el debug de algunos test no es tan directo como seleccionar simplemente Run As->Python unit-test


Debería ser así, pero la realidad es que no funciona y obtendrán el mensaje...

raise AppRegistryNotReady("Apps aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.

Seguramente se ejecutan los unit-test sin antes cargar cuestiones básicas del ORM y demás, todavía no me queda claro porque.


La solución


Para resolver este tema, sin instalar librerias adicionales tenemos el siguiente workaround:

1.Ir a Run Configurations...

2.Crear una nueva configuración de ejecución, muy importante estar parado sobre PyDev Django como indica la siguiente imagen.


3.Luego colocar un nombre descriptivo, tener en cuenta que esta es una configuración para correr test, luego seguramente necesitemos una para depurar, por tanto no esta demás indicar esta característica en el nombre


4.Luego indicar para que proyecto estamos armando la configuración


5.Indicar la ubicación del manage.py del proyecto


6.En argumentos colocar la palabra "test", como si lo hiciéramos por consola


7.Salvar y ejecutar el test....




Para debug:


Para debug realizar los mismos pasos pero al utilizar el debug configuration en lugar del run configuration...


Conclusion

Rápidamente se puede acceder a los test automáticos sin necesidad de componentes de terceros y cuando se entiende la idea se configura muy rápido.
Espero haya servido.




No hay comentarios:

Publicar un comentario