Een specifieke testcase uitvoeren in Django wanneer uw app een testdirectory heeft

| |

De Django-documentatie (http://docs.djangoproject.com /en/1.3/topics/testing/#running-tests) zegt dat je individuele testgevallen kunt uitvoeren door ze te specificeren:

$ ./manage.py test animals.AnimalTestCase 

Hierbij wordt ervan uitgegaan dat u uw tests in een tests.py-bestand in uw Django-toepassing hebt staan. Als dit waar is, werkt dit commando zoals verwacht.

Ik heb mijn tests voor een Django-toepassing in een testdirectory:

my_project/apps/my_app/ ‚îú ‚îÄ‚îÄ __init__.py ‚îú‚îÄ‚îÄ tests ‚îÇ ‚îú‚îÄ‚îÄ __init__.py ‚îÇ ‚îú‚îÄ‚îÄ field_tests.py ‚îÇ ‚îú‚îÄ‚îÄ storage_tests.py ‚îú‚ îÄ‚îÄ urls.py ‚îú‚îÄ‚îÄ utils.py ‚îî‚îÄ‚îÄ views.py 

Het bestand tests/__init__.py bevat een suite() functie:

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) 

Om de tests uit te voeren doe ik:

$ ./manage.py test my_app 

Als u een individuele testcase probeert te specificeren, ontstaat er een uitzondering:

$ ./manage.py test my_app. tests.storage_tests.StorageTestCase ... ValueError: T est label "my_app.tests.storage_tests.StorageTestCase" moet de vorm hebben app.TestCase of app.TestCase.test_method 

Ik heb geprobeerd te doen wat het uitzonderingsbericht zei:

$ ./manage.py test my_app.StorageTestCase ... ValueError: Testlabel "my_app.StorageTestCase" verwijst niet naar een test 

Hoe specificeer ik een individuele testcase wanneer mijn tests in meerdere bestanden staan?