2009-08-14 3 views
0

Quelques fois en parcourant tests dir dans diverses applications Django je suis tombé sur models.py et settings.py fichiers (en django-tagging par exemple).Comment les tests unitaires fonctionnent-ils dans le django-tagging, parce que je veux que le mien fonctionne comme ça?

Mais il n'y a pas de code pour synchroniser les modèles de test ou appliquer des paramètres de test personnalisés - mais les tests les utilisent comme si django les chargeait automatiquement. Cependant, si j'essaie d'exécuter les tests de django-tagging: manage.py test tagging, il ne fait même pas un seul test.

C'est exactement ce dont j'ai besoin maintenant pour tester mon application, mais je ne sais pas vraiment comment.

Alors, comment ça marche?

Répondre

1

Si vous voulez exécuter les tests en django-tagging, vous pouvez essayer:

django-admin.py tests --settings = tagging.tests.settings

Fondamentalement, il utilise doctests qui se trouvent dans le fichier tests.py dans le répertoire package/tests. Les tests utilisent le fichier de paramètres dans le même répertoire (et spécifié dans la ligne de commande de django-admin). Pour plus d'informations, voir la documentation de django au writing doctests.

+0

Si simple, mais si utile. Je ne connaissais pas le paramètre '--settings'. Je vous remercie. – kurczak

+0

De rien; heureux de vous aider. :) – ars

0

Vous voulez dire "Comment écrire des tests unitaires dans Django?" Vérifiez le documentation on testing.

Quand je l'ai fait, j'ai écrit des tests unitaires dans un sous-répertoire test /. Assurez-vous que le répertoire contient un fichier __init__.py vide. Vous pouvez également avoir besoin d'un fichier models.py. Ajoutez les tests unitaires qui dérivent de unittest.TestCase (dans unittest de module). Ajoutez le module 'xxxx.test' à INSTALLED_APPS dans settings.py (où 'xxxx' est le nom de base de votre application).

Voici quelques exemples de code de la mine pour vous aider à démarrer:

#!/usr/bin/env python 
# http://docs.djangoproject.com/en/dev/topics/testing/ 

from sys import stderr 
import unittest 
from django.test.client import Client 
from expenses.etl.loader import load_all, load_init 

class TestCase(unittest.TestCase): 
    def setUp(self): 
     print "setUp" 

    def testLoading(self): 
     print "Calling load_init()" 
     load_init() 
     print "Calling load_all()" 
     load_all() 
     print "Done" 

if __name__ == '__main__': 
    unittest.main() 

Si vous voulez dire, « Comment puis-je obtenir des données chargées dans mes tests unitaires? », Puis utilisez les appareils, décrits sur la même page de documentation .

+0

Non, pas vraiment. La chose est, mon application de notification se lie avec le modèle de destinataire externe (selon le paramètre RECIPIENT_MODEL de mon application) et je voudrais le tester indépendamment des autres applications. Pour ce faire, j'ai besoin d'un modèle d'espace réservé pour les tests. – kurczak

+0

Donc, votre question est plus proche de, "Comment les tests unitaires fonctionnent-ils dans le django-tagging, parce que je veux que le mien fonctionne comme ça?" – hughdbrown

+0

Oui, plus comme ça. – kurczak

Questions connexes