Как я могу запустить doctests с PyCharm?

в PyCharm IDE, если я щелкну правой кнопкой мыши по функции / методу с doctest, иногда меню правой кнопки мыши даст мне опцию:"запустите 'Doctest my_function_name' " и иногда меню правой кнопкой мыши, вместо этого, только дает возможность запустить весь файл (не как doctest).

Что определяет, когда он даст опцию "запустить doctest", а когда нет? Есть ли способ заставить его так или иначе?

2 ответов


запуск модуля (или тестов в нем) в PyCharm осуществляется через Выполнить Конфигурации. Когда вы щелкните правой кнопкой мыши модуль,PyCharm поиск существующего Run Configuration для этого модуля. Если конфигурация найдена (это может быть связано с предыдущим запуском или ручным созданием Configuration),PyCharm предложит только запустить эту конфигурацию.

например, если конфигурация module.py был создан для запуска его doctests, это вариант, который мы увидим, когда щелчок правой кнопкой мыши module.py. Однако, если конфигурация не найдена, PyCharm предлагает запускать модуль в разных вариантах, в зависимости от кода в модуле (запускать регулярно или запускать doctests / unittests). После выбора опции,PyCharm создает соответствующий, временный,Run Configuration, неявно. С этого момента при щелчке правой кнопкой мыши по модулю вы получите только конфигурацию, созданную для этого модуля.

важное замечание: PyCharm сохраняет до 6 временное (то есть Configurations которые были созданы с помощью запуска модуля)Run Configurations - 3 в "Python", т. е. скриптах, и 3 в "тестах Python". Это означает, что если вы запустите moduleA.py, moduleB.py, moduleC.py, а потом moduleD.py, временно Configurations в PyCharm будет moduleB.py, moduleC.py и moduleD.py. Конфигурация moduleA.py будет автоматически удален, если явно не спасли.

это поведение можно воспроизвести следующим образом:

  1. на PyCharm создать новый модуль Python:"temp"

2.Добавьте в модуль следующее:

"""
    >>> print 3.14
    3.14
"""

if __name__ == '__main__':
    pass
  1. щелчок правой кнопкой мыши по разделу doctest дает возможность "запустить" Doctests in temp""
  2. щелкните правой кнопкой мыши main раздел дает возможность "запустить " temp""
  3. Выбирая любой из вариантов, делает другой вариант исчезает в последующих запусках. Е. Г., выбор выполнить модуль сделает возможность запуска Doctests исчезают в последующих запусках, и наоборот. Вернуться к первому этапу, где можно было выбрать один из двух вариантов, можно, удалив "Run configuration" модуля:

выполнить --> изменить конфигурацию -- > найдите текущую конфигурацию модуля (обычно выделенную) -- > Нажмите кнопку " Минус "(верхний левый угол) --> нажмите" Применить " -- > нажмите OK. Теперь мы вернулись к шагу 3.

(воспроизводятся в PyCharm 5.0 и 4.5)

подведем итоги:

  • , если не Run Configuration найдено, PyCharm предлагает запустить модуль любым возможным способом (как скрипт, doctests или unittests)
  • если Run Configuration найдено, PyCharm только предполагает, что Configuration.
  • если PyCharm не дает вам вариант запуска, который вы хотите, найдите Run Configuration это предотвращает его от предоставления вам этой опции и удалить, или создать новый, который будет запускать файл, или метод / функция, как вы хотите.

Если вы не хотите удалять конфигурации, вы также можете нажать клавишу быстрого доступа для запуска / возобновления программы (F9 для меня), чтобы открыть полный список вариантов