Как правильно установить django-nose?

У меня проблемы с запуском носа.

Согласно инструкции по установке, я установил:

  1. Бег pip install django-nose
  2. Добавление 'django_nose' в INSTALLED_APPS в settings.py (в том числе в самом последнем приложении, в случае возможных проблем с порядком приложений)
  3. Добавление TEST_RUNNER = 'django_nose.NoseTestSuiteRunner' в settings.py

Когда я запускаю тест, т.е. manage.py test, Я получил:

django.db.utils.DatabaseError: no such table: django_content_type

Я решил, что мне нужно синхронизировать базу данных. Я использую Юг. Когда я использую manage.py syncdb, django_nose не отображается ни в списке синхронизированных приложений, ни в списке приложений "Не синхронизировано (использовать миграции)".

Наконец, когда я пытаюсь синхронизироваться с югом, так или иначе, т.е. manage.py schemamigration django_nose --initial, Я получил:

django.core.exceptions.ImproperlyConfigured: App with label django_nose is missing a models.py module.

У меня Django 1.4 с Южной версией 0.7.5 установлен в virtualenv.

Что я делаю неправильно? Если ничего, как мне отладить эту проблему установки?

4 ответа

Похоже, это проблема заказа приложений, цитата из руководства django-nose:

Использование с Югом

South устанавливает собственную тестовую команду, которая отключает миграции во время тестирования. Убедитесь, что django-nose идет после юга в INSTALLED_APPS, чтобы использовалась тестовая команда django_nose.

Если вы внимательно прочитаете документы на github, проблема в том, что когда юг установлен, вам нужно поместить django_nose ниже юга, читайте дальше.

Так что ваш INSTALLED_APPS в файле settings.py должен выглядеть примерно так:

INSTALLED_APPS = (
.....other apps...
....

south,
django_nose,
) 

Попробуйте поместить приложения, которые вы хотите протестировать, в PROJECT_APPS в ваших настройках; он пытается протестировать django_nose и генерировать модели для него, когда у него нет файла models.py.

Я тоже столкнулся с подобной проблемой при использовании kombu.transport.django в INSTALLED_APPS. Я получил сообщение об ошибке: "ImproperlyConfigured: в приложении с меткой django отсутствует модуль models.py.". Похоже, порядок на юге имеет значение. Что я сделал, так это положил юг в самый низ INSTALLED_APPS,

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'djcelery',
'kombu.transport.django',
'sdm',
'cycletel_admin',
'django.contrib.admin',
'lettuce.django',
'south'
) 

Это помогло решить проблему. Миграции прошли успешно. Я использовал Django 1.5

Другие вопросы по тегам