Нет ошибок на отсутствующих светильниках в модульном тесте Django - PullRequest
3 голосов
/ 09 июня 2011

Есть ли способ увидеть ошибки, когда модульные тесты django загружают приборы?

Раздражает, что что-то вроде отсутствующего файла, дублирующих ключей или плохо отформатированных файлов приборов не отображается как ошибка при запуске модульного теста django.

Ответы [ 2 ]

1 голос
/ 17 июня 2011

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

Вы можете написать общие тесты для проверки упомянутых проблем:

  • Есливаш прибор не загружается, любой запрос, основанный на этом приборе, не будет выполнен.Напишите тест, который пытается получить объект в этом приборе (например, YourObject.objects.get(pk=1) или YourObject.objects.get(name='My Test Entry').

  • . Чтобы проверить наличие дублирующих первичных ключей, сравните YourObject.objects.all().aggregate(Count('id', distinct=True)) с YourObject.objects.all().aggregate(Count('id')). Если они не совпадают, у вас есть дубликаты первичных ключей.

  • Чтобы избежать плохо отформатированных файлов фикстур, создайте их из проверенных данных. Используйте manage.py dumpdata и избегайте ручного создания илиРедактирование приборов.

В первом упомянутом тесте будет указано, что у вас неверный путь. Последняя рекомендация устраняет все проблемы с неправильным форматированием.


Ошибка без вывода сообщенийявляется результатом работы loaddata. Он ищет имена файлов, указанные в списке fixtures = [] в нескольких местах, и может не найти файлы ни в одном из них. Чтобы сообщить об ошибке, loaddata долженотследить, был ли файл еще найден, и для которого требуется исправление. Для тихого сбоя есть запрос trac, но он был обработан в 'Design Decision Needed' уже 2 года.

Yoу вас есть возможность пошутить об этом в списке рассылки Django, и использовать неутвержденный патч в своей разработке Django.

0 голосов
/ 17 июня 2011

Вы можете попытаться определить свой собственный метод проверки в setUp ().Тестирование, если ваши приборы загружены, будет довольно простым, однако проверка ваших приборов потребует совсем немного работы в зависимости от того, какой формат у вас.

...