Как работает «manage.py test»? (проблема с pdb) - PullRequest
1 голос
/ 22 июля 2010

Я разрабатываю свое приложение django на Mac с сервером dev.Когда я запускаю manage.py test , я могу прервать выполнение с помощью pdb (как и при запуске сайта).

Когда я помещаю приложение на свой рабочий сервер Linux (Ubuntu) с запущенным apache2 / nginx pdb, оно больше не работает на сайте.Выдает исключение BdbQuit.Я полагал, что это будет работать, когда я запустил manage.py test , но был удивлен, обнаружив, что тест просто пропустил вызовы pdb.set_trace () без остановки для них.подразумевается, что manage.py test выполняется через веб-сервер, но это кажется нелогичным, поскольку мой тестовый код - чистый python без HTTP.

Если manage.pytest подключается к веб-серверу, есть ли способ сообщить ему об использовании сервера dev?

Я попытался установить ipdb, btw, и он делает то же самое.

1 Ответ

1 голос
/ 23 июля 2010

Вы как-то неправильно диагностировали проблему. Просто не имеет смысла говорить «тест manage.py выполняется через веб-сервер». Ваша инсталляция Django даже не знает о наличии веб-сервера, если только он фактически не вызывается этим веб-сервером через WSGI - что, очевидно, не тот случай, когда вы запускаете тесты через manage.py.

Вы уверены, что ваши тесты вообще выполняются правильно? Попробуйте вставить self.assertTrue(False) в тесты, в которых есть вызов pdb, чтобы увидеть, не сработают ли они, как вы ожидаете, - попробуйте с утверждением поочередно до и после pdb и посмотрите, что происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...