Pycharm не распознает контрольные точки в не тестовых файлах - PullRequest
5 голосов
/ 09 марта 2011

Использовал Pycharm для написания сервера.

У меня есть несколько юнит-тестов, использующих библиотеку 'unittest' из Python.

Я просто запускал тесты, и все было хорошо, я мог устанавливать точки останова в любом месте кода. Вчера я начал запускать сервер через отладчик. Я обнаружил, что мои контрольные точки больше не работают. Визуально они все еще там, они выглядят / ведут себя во всех отношениях как рабочая точка останова, за исключением того, что они фактически не вызывают прерывание выполнения, они просто игнорируются (как если бы они были отключены).

Сегодня, когда я снова попытался запустить тесты, я наблюдаю одинаковое поведение во всех файлах , за исключением в моей библиотеке тестов.

Я попытался провести эксперимент, добавив новый файл в код сервера с простой функцией в нем. Точка останова в функции, вызов функции из теста, запуск теста через отладчик, без перерыва. Скопировал файл в мой каталог «tests», сбросил точку останова в функции, изменил оператор «import», чтобы он указывал на новое местоположение файла теста, запустил тесты. Теперь он останавливается на точке останова в файле.

Я перепробовал все основные «проверки работоспособности», которые я могу себе представить: выйти из PyCharm. Переустановите PyCharm. Удалить настройки PyCharm. Перезагружать. Я все еще веду себя точно так же.

Для чего стоит «запустить до курсора», возникает та же проблема: во всем, кроме тестового файла, он работает без остановки.

Что действительно сводит с ума, так это то, что вчера все работало нормально. По крайней мере, точки останова работали, когда я проводил тесты.

Ответы [ 2 ]

2 голосов
/ 10 марта 2011

Кинда Сорта исправил это сам.

В Run-> Edit Configuration, выберите конфигурацию для тестирования.

В «Тесты: Папка:» существующей настройкой была foo / bar / baz / my_project / tests.

С этим параметром у меня возникла проблема: точки останова в «тестах» работают, точки останова в остальной части «my_project» - нет.

Я изменил его на foo / bar / baz / my_project. Теперь все работает как положено, точки останова в любом месте работают нормально.

У других людей в моем проекте все отлично работает с оригинальной настройкой: они указывают только на каталог 'tests' и могут устанавливать точки останова где угодно.

Я не уверен, почему я особенный, и для меня это не получилось, но у меня есть обходной путь, и я устал бороться с этим, так что ... хорошие времена.

1 голос
/ 11 марта 2011

Эй, Даг, три вещи, которые могут или не могут быть полезны:

  1. У меня была такая же проблема пару раз назад с более ранними версиями 1.0 и 1.0.1 с сохраненными конфигурациями отладки - воссоздание конфигурации отладки устранило ошибку. Стук по дереву, но у меня не было проблемы в 1.1.1. Не пробовал версию 1.2 кандидата.
  2. У коллеги возникла похожая проблема, но он случайно установил свои точки останова на внешней копии файла, а не на том, что выполнял PyCharm.
  3. Наконец, мой опыт показывает, что пользователи JetBrains неплохо справляются с проблемами, если вы пропингуете их пользовательский форум и / или отправляете ошибку YouTrack .

Ура, Rob

...