2010-09-24 18 views

Répondre

4
#settings.test.py 
INSTALLED_APPS += ('django_nose',) 
TEST_RUNNER = 'django_nose.run_tests' 

#appname/tests.py 
from datetime import date,datetime, timedelta 
from django.contrib.auth.models import User 
from django.test.client import Client 
from django.test import TestCase 

class BetViewsTestCase(TestCase): 
    #files placed in appname/fixtures/restaurant.json, appname/fixtures/map.json 
    fixtures = ['authtestdata.json', 'restaurant.json', 'map.json'] 
+4

est-il pas possible de charger des cas de test sans la sous-classe boilerplate django.test.TestCase? – epoch

+1

1) créer un script shell: premiers projecteurs de chargement: django-admin.py loaddata foo/bar/mydata.json; exécuter la logique de test; fin; 2) vous pouvez charger des appareils à partir de python: à partir de django.core gestion de l'importation management.call_command ('loaddata', 'fixture1.json', verbosity = 0) – iddqd

2

Dans votre méthode de configuration, il suffit d'appeler:

management.call_command('loaddata', 'Category.json', verbosity=0) 

Ensuite, dans votre teardown, appelez:

management.call_command('flush', verbosity=0, interactive=False) 

Vous pouvez importer la gestion d'ici:

from django.core import management 
+0

la réponse acceptée n'a pas fonctionné pour moi. cela fait. – galarant

+0

http://pythontesting.net/framework/nose/nose-fixture-reference/ vous pouvez utiliser ces commandes au niveau du paquet – Simanas

2

Faites simplement du test élément une sous-classe de FastFixtureT estCase.

from django_nose import FastFixtureTestCase 
from myapp.models import MyModel 
from nose_tools import eq_ 

class TestFixtureLoading(FastFixtureTestCase): 
    fixtures = ['mymodel_data.yaml'] 

    def test_fixture_loading(self): 
     eq_(1, MyModel.objects.count()) 

Et puis:

python manage.py test