A resposta conforme declarada por Tomasz está correta. No entanto, pode ser entediante garantir que as importações __init__.pycorrespondam à sua estrutura de arquivos.
Para detectar automaticamente todos os testes na pasta, você pode adicioná-lo em __init__.py:
import unittest
def suite():
return unittest.TestLoader().discover("appname.tests", pattern="*.py")
Isso permitirá que você execute, ./manage.py test appnamemas não lida com a execução de testes específicos. Para fazer isso, você pode usar este código (também em __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__)
Agora você pode executar todos os seus testes via manage.py test appou testes específicos viamanage.py test app.TestApples