Как я могу запустить 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
будет автоматически удален, если явно не спасли.
это поведение можно воспроизвести следующим образом:
- на
PyCharm
создать новый модуль Python:"temp"
2.Добавьте в модуль следующее:
"""
>>> print 3.14
3.14
"""
if __name__ == '__main__':
pass
- щелчок правой кнопкой мыши по разделу doctest дает возможность "запустить" Doctests in temp""
- щелкните правой кнопкой мыши main раздел дает возможность "запустить " temp""
- Выбирая любой из вариантов, делает другой вариант исчезает в последующих запусках. Е. Г., выбор выполнить модуль сделает возможность запуска Doctests исчезают в последующих запусках, и наоборот. Вернуться к первому этапу, где можно было выбрать один из двух вариантов, можно, удалив "Run configuration" модуля:
выполнить --> изменить конфигурацию -- > найдите текущую конфигурацию модуля (обычно выделенную) -- > Нажмите кнопку " Минус "(верхний левый угол) --> нажмите" Применить " -- > нажмите OK. Теперь мы вернулись к шагу 3.
(воспроизводятся в PyCharm
5.0 и 4.5)
подведем итоги:
- , если не
Run Configuration
найдено, PyCharm предлагает запустить модуль любым возможным способом (как скрипт, doctests или unittests) - если
Run Configuration
найдено, PyCharm только предполагает, чтоConfiguration
. - если PyCharm не дает вам вариант запуска, который вы хотите, найдите
Run Configuration
это предотвращает его от предоставления вам этой опции и удалить, или создать новый, который будет запускать файл, или метод / функция, как вы хотите.
Если вы не хотите удалять конфигурации, вы также можете нажать клавишу быстрого доступа для запуска / возобновления программы (F9 для меня), чтобы открыть полный список вариантов