A documentação do Django ( http://docs.djangoproject.com/en/1.3/topics/testing/#running-tests ) diz que você pode executar casos de teste individuais especificando-os:
$ ./manage.py test animals.AnimalTestCase
Isso pressupõe que você tenha seus testes em um arquivo tests.py no seu aplicativo Django. Se isso for verdade, esse comando funcionará como esperado.
Eu tenho meus testes para uma aplicação Django em um diretório de testes:
my_project/apps/my_app/
├── __init__.py
├── tests
│ ├── __init__.py
│ ├── field_tests.py
│ ├── storage_tests.py
├── urls.py
├── utils.py
└── views.py
O tests/__init__.py
arquivo tem uma função suite ():
import unittest
from my_project.apps.my_app.tests import field_tests, storage_tests
def suite():
tests_loader = unittest.TestLoader().loadTestsFromModule
test_suites = []
test_suites.append(tests_loader(field_tests))
test_suites.append(tests_loader(storage_tests))
return unittest.TestSuite(test_suites)
Para executar os testes que eu faço:
$ ./manage.py test my_app
Tentar especificar um caso de teste individual gera uma exceção:
$ ./manage.py test my_app.tests.storage_tests.StorageTestCase
...
ValueError: Test label 'my_app.tests.storage_tests.StorageTestCase' should be of the form app.TestCase or app.TestCase.test_method
Eu tentei fazer o que a mensagem de exceção dizia:
$ ./manage.py test my_app.StorageTestCase
...
ValueError: Test label 'my_app.StorageTestCase' does not refer to a test
Como especifico um caso de teste individual quando meus testes estão em vários arquivos?