Ошибка с югом при запуске юнит-тестов с использованием Nose - PullRequest
6 голосов
/ 23 марта 2011

У меня возникли некоторые трудности с правильной работой моих тестов на django; Я использую нос, и я начал получать сообщение об ошибке при применении миграций, что из таблицы 1 отношение внешнего ключа к таблице 2 не удалось с ошибкой:

django.db.utils.DatabaseError: relation "table2_column" does not exist

Глядя на то, как применяются миграции, мне стало ясно, что table1 не был создан до применения отношения внешнего ключа, поэтому я попытался выяснить, как форсировать зависимость, и нашел следующую статью: http://south.aeracode.org/docs/dependencies.html

Затем я добавил:

depends_on = (
    ("app2", "0001_inital"),
)

в мой файл app1 / 0001_initial.py.

К сожалению, теперь я получаю следующую ошибку:

south.exceptions.DependsOnUnknownMigrationMigration 'app1:0001_initial' depends on unknown migration 'app2:0001_inital'.

Есть идеи, как решить эту проблему?

Ответы [ 3 ]

19 голосов
/ 23 марта 2011

Я не уверен, решит ли это вашу проблему, но вы можете добавить параметр для использования syncdb вместо миграций при запуске тестов. Добавьте следующую строку в ваши settings.py

SOUTH_TESTS_MIGRATE = False
5 голосов
/ 23 апреля 2011

У вас есть опечатка в названии миграции, от которой она зависит. Должно быть:

depends_on = (
    ("app2", "0001_initial"),
)

Эта система зависимостей сработала для меня, после того, как у меня возникла та же самая проблема, которую вы перечислили здесь, а затем нашла документацию системы юга.

0 голосов
/ 12 июля 2014

Эта ошибка также выдается, если во время импорта целевого модуля произошла ошибка: если у вас есть созданные вручную миграции, и вы уверены, что имя файла соответствует вашему зависимость_он или required_by , проверьте указанный файл на наличие ошибок.

Кроме того, установка SOUTH_TESTS_MIGRATE в False не решит проблему.Это просто означает, что вы не увидите проблему, пока не попробуете использовать миграцию.

http://south.readthedocs.org/en/latest/settings.html

(Это все еще полезно, если вы хотите ускорить свои юнит-тесты.)

...