С текущей стабильной версией django_nose (0.1.3) модели даже не были правильно найдены и загружены, я получаю следующее исключение при запуске тестов:
django.db.utils.DatabaseError: (1146, "Table 'test_appdatabase.django_site' doesn't exist")
с помощью git-версии django_nose мне удалось правильно создать свои модели в тестовой базе данных, однако они все пусты, с помощью testrunner Django я загружаю некоторые базовые данные в таблицы, такие как таблицы django_site и auth_permission :
django_site
id domain name
1 example.com example.com
Когда я запускаю набор тестов с установленной и установленной программой django_nose, я получаю следующее исключение:
DoesNotExist: Site matching query does not exist.
Есть идеи?
Обновление: работает с -v 2, похоже, что он запускает обработчики пост-синхронизации (syncdb) для приложений
Running post-sync handlers for application sites
Creating example.com Site object
Adding content type 'sites | site'
Adding permission 'sites | site | Can add site'
Adding permission 'sites | site | Can change site'
Adding permission 'sites | site | Can delete site'
Похоже, что они добавляются, но где-то они удаляются.
Дальнейшее обновление:
Глядя на журнал MySQL Query, последовательность событий
- Сделать syncdb в тестовой базе данных
- Обрезать каждую таблицу (почему ?, вот где моя проблема)
- Выполнить тесты
Пример усечения из журнала запросов:
TRUNCATE `django_site`
Почему таблицы усекаются? Неужели тесты не загрязняют друг друга, есть ли способ отключить это?
Я считаю, что это последнее обновление:
при использовании стандартного бегуна django происходит то же самое,
- таблицы созданы
- вставка данных после синхронизации
- таблицы усекаются
- Изменить таблицу, вызываемую для установки AUTO_INCREMENT = 1
За исключением следующего шага:
Данные вставляются обратно в
INSERT INTO django_site
(domain
, name
) VALUES ('example.com', 'example.com')
Не уверен, почему это происходит здесь, но не с django_nose