L'exécution d'un test spécifique de cas dans Django lorsque votre application dispose d'un répertoire tests

La documentation de Django (http://docs.djangoproject.com/en/1.3/topics/testing/#running-tests) dit que vous pouvez exécuter des cas de test en les précisant:

$ ./manage.py test animals.AnimalTestCase

Cela suppose que vous avez vos tests dans un tests.py fichier dans votre application Django. Si cela est vrai, alors cette commande fonctionne comme prévu.

J'ai mes tests pour une application Django dans un répertoire tests:

my_project/apps/my_app/
├── __init__.py
├── tests
   ├── __init__.py
   ├── field_tests.py
   ├── storage_tests.py
├── urls.py
├── utils.py
└── views.py

La tests/__init__.py fichier a une suite() fonction:

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)

Pour exécuter les tests que je fais:

$ ./manage.py test my_app

D'essayer de préciser un test individuel affaire soulève une exception:

$ ./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

J'ai essayé de faire ce que le message de l'exception a dit:

$ ./manage.py test my_app.StorageTestCase
...
ValueError: Test label 'my_app.StorageTestCase' does not refer to a test

Comment puis-je spécifier un cas de test lors de mes tests sont en plusieurs fichiers?

InformationsquelleAutor hekevintran | 2011-05-03