La respuesta según lo declarado por Tomasz es correcta. Sin embargo, puede volverse tedioso asegurarse de que las importaciones __init__.py
coincidan con la estructura de su archivo.
Para detectar automáticamente todas las pruebas en la carpeta , puede agregar esto en __init__.py
:
import unittest
def suite():
return unittest.TestLoader().discover("appname.tests", pattern="*.py")
Esto le permitirá ejecutar, ./manage.py test appname
pero no manejará la ejecución de pruebas específicas. Para hacer eso, puede usar este código (también en __init__.py
):
import pkgutil
import unittest
for loader, module_name, is_pkg in pkgutil.walk_packages(__path__):
module = loader.find_module(module_name).load_module(module_name)
for name in dir(module):
obj = getattr(module, name)
if isinstance(obj, type) and issubclass(obj, unittest.case.TestCase):
exec ('%s = obj' % obj.__name__)
Ahora puede ejecutar todas sus pruebas a través de manage.py test app
o específicas a través demanage.py test app.TestApples