Как настроить PyCharm для запуска тестов py.test?

Я хочу начать писать модульные тесты для моего кода Python, а py.test - это лучшая ставка, чем Python в комплекте unittest. Поэтому я добавил в свой проект каталог "тесты" и добавил к нему test_sample.py. Теперь я хочу настроить PyCharm для запуска всех тестов в моем каталоге "tests".

PyCharm якобы поддерживает py.test в своем тестовом бегуне. Вы должны создать конфигурацию прогона/отладки для запуска своих тестов, а PyCharm предположительно имеет "создать конфигурацию" специально для py.test. Но что полная их документация по этому вопросу, и я не могу найти это предполагаемое диалоговое окно где угодно.

Если я щелкнул правой кнопкой мыши каталог в окне инструмента Project, я предположил, чтобы увидеть "Создать < имя > ";, но единственным пунктом меню, начинающимся с "Создать", является "Создать конфигурацию запуска". Хорошо, может быть, документация просто неправильная, и "Create Run Configuration" звучит многообещающе. К сожалению, только два элемента в его подменю - "Unittests in C:\mypath..." и "Doctests in C:\mypath...", ни одно из которых не применяется - я не использую ни unittest, ни doctest. Для py.test нет пункта меню.

Если я открою свой test_sample.py и щелкнул правой кнопкой мыши в окне редактора, я получу обещанное "Создать < имя > "; пункты меню: "Создать" Unittests в test_sa... "...", а затем "Run" Unittests в test_sa... "и" Debug "Unittests в test_sa...". Так что опять же, все это относится к унитарной структуре; ничего для py.test.

Если я попробую элементы меню, которые говорят "unittest", я получаю диалоговое окно с параметрами "Имя", "Тип", поле "Тесты" с "Папка" и "Шаблон" и "Script "и" Class "и" Function "и т.д. Это звучит точно так же, как в диалоговом окне, чтобы добавить конфигурацию для Python Unit Test., а не как параметры "Имя" и "Тест для запуска" и "Ключевые слова", которые должны отображаться в конфигурации для py.test. В диалоговом окне ничего нет, чтобы переключать те рамки проверки, которые я добавляю.

Я использую PyCharm 1.5.2 для Windows с Python 3.1.3 и pytest 2.0.3. Я могу успешно запустить py.test в своих тестах из командной строки, так что это не так просто, как pytest, который не устанавливается должным образом.

Как настроить PyCharm для запуска моих тестов py.test?

Ответ 1

Пожалуйста, перейдите в File | Настройки | Инструменты | Python Integrated Tools и измените тестовый бегун по умолчанию на py.test. Затем вы получите параметр py.test для создания тестов вместо unittest.

Ответ 2

Я думаю, вам нужно использовать элемент "Run/Debug Configuration" на панели инструментов. Нажмите "Редактировать конфигурации" (или, напротив, используйте пункт меню "Run- > Edit Configurations" ). В разделе "По умолчанию" на левой панели находится элемент "py.test", который, как я думаю, вам нужен.

Я также обнаружил, что руководство не соответствует пользовательскому интерфейсу. Надеюсь, я правильно понял проблему и это помогает.

Ответ 3

Это плохо документировано, чтобы быть уверенным. После того, как вы добавите новую конфигурацию по умолчанию, вы попадете в область запуска "/Applications/PyCharm CE.app/Contents/helpers/pycharm/pytestrunner.py" script. Он не документирован и имеет свои собственные идеи аргументов командной строки.

Вы можете:

  • Попробуйте поиграть, отмените script и посмотрите, можете ли вы каким-то образом получить py.test, чтобы принимать аргументы. Это может сработать; это не в первый полчаса для меня.
  • Просто запустите "py.test *.py" с консоли.

Как ни странно, вам будет трудно найти какое-либо обсуждение, так как JetBrains отлично справляется с бомбардировкой алгоритмов Google своими собственными страницами.

Ответ 4

найти эту тему, когда я попал в тот же вопрос и нашел решение версия pycharm: 2017.1.2 перейдите в "Настройки" → "Инструменты" → "Интегрированные инструменты Python" и установите стандартный тестовый бегун с правой панели в виде py.test решить мою проблему

Ответ 5

Со специальной настройкой питона Conda, которая включала в себя установку pip для py.test плюс использование дополнения Specs (опция --spec) (для Rspec, такого как хороший язык сложения тестов), мне пришлось делать;

1. Измените значение py.test по умолчанию, чтобы включить параметр = --spec, что означает использование плагина: https://github.com/pchomik/pytest-spec

2. Создайте новую тестовую конфигурацию, используя py.test. Измените его интерпретатор python на использование ~/anaconda/envs/вашего выбора переводчиков, например py27 для моих имен.

3.Удалить конфигурацию теста unittests.

4. Теперь тестовая конфигурация по умолчанию - py.test с моими прекрасными выводами стиля Rspec. Я люблю это! Спасибо всем!

p.s. Документ Jetbrains для конфигураций run/debug находится здесь: https://www.jetbrains.com/help/pycharm/2016.1/run-debug-configuration-py-test.html?search=py.test