2015-01-14 4 views
0

Я пытаюсь запустить несколько тестов для проекта django (1.7).python running test: Неправильноконфигурированный

создали каталог test_models.py/tests/ в каталоге проекта.

На ходовых испытаниях

>> python tests/test_models.py -v 

Ошибка:

django.core.exceptions.ImproperlyConfigured: Requested setting CACHES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. 

Хотя следующие команды Джанго stanards работает отлично

>> python manage.py runserver 
>> python manage.py shell 

test_models.py

import unittest 
from django.contrib.auth.models import User 
from accounts.models import school 

class TestAccounts(unittest.TestCase): 

    def setUp(self): 
     admin_user = User.objects.get_or_create(
      username="testuser", password=111) 
     self.admin = admin_user[0] 

     self.school_name = "merucabs" 
     self.email = "[email protected]" 

    def test_school(self): 
     print "Testing school ..." 
     school = School(name=self.school_name) 
     school.created_by = self.admin 
     school.updated_by = self.admin 
     school.save() 
     self.school = school 
     self.assertEqual(self.school.name, self.school_name) 



def suite(): 
    suite = unittest.TestSuite() 
    suite.addTests(unittest.makeSuite(TestAccounts)) 

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

уже пробовали решения предложенные здесь http://stackoverflow.com/questions/24011428/django-core-exceptions-improperlyconfigured-requested-setting-caches-but-setti? – aberna

+0

@aberna: попробовал, но не помог – navyad

+0

@ Код Alasdair для test_models.py – navyad

ответ

1

run Django tests с командой test.

./manage.py test tests/test_models 

Если вы хотите запустить тесты как самостоятельный скрипт (т.е. питон tests/test_models.py), то вы должны установить переменные окружения DJANGO_SETTINGS_MODULE. Начиная с Django 1.7, вы также должны позвонить django.setup().

import django 
import os 
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' 
django.setup() 
Смежные вопросы