Как настроить PyCharm для запуска py.тестовые тесты?
Я хочу начать писать модульные тесты для моего кода Python, и py.тест фреймворк звучит как лучшая ставка, чем Python в комплекте unittest. Поэтому я добавил каталог "тесты" в свой проект и добавил test_sample.py к нему. Теперь я хочу настроить PyCharm для запуска всех тестов в моем каталоге" тесты".
PyCharm якобы поддерживает py.тест в ее тестов. Вы должны быть в состоянии создать запуск / отладка конфигурации чтобы запустить ваши тесты, и PyCharm якобы имеет диалоговое окно"создать конфигурацию" специально для py.тест. Но это полный объем их документации по этому вопросу, и я нигде не могу найти это предполагаемое диалоговое окно.
если я щелкну Правой Кнопкой Мыши каталог в окне инструментов проекта, я должно чтобы увидеть пункт меню " Создать ", но единственным пунктом меню, начинающимся с" создать", является"создать конфигурацию запуска". Хорошо, может быть, документация просто неверна, и "создать конфигурацию запуска" звучит многообещающе. К сожалению, только два пункта в его подменю - это " Unittests in C:mypath..."и" докторанты в C:mypath...- ни то, ни другое не применимо-я не использую ни unittest, ни doctest. Там нет пункта меню для py.тест.
Если я открою свой test_sample.py и щелкните правой кнопкой мыши в окне редактора, я получаю обещанные пункты меню " Создать ": есть "создать" Unittests в test_sa...'...", затем следует " выполнить 'Unittests в test_sa..."и "отладка 'unit-тестов в test_sa...'". Итак, опять же, все это специфично для unittest framework; ничего для py.тест.
если я попробую пункты меню, которые говорят "unittest", я получаю диалоговое окно с параметрами" Имя"," тип"," тесты "групповое поле с" папка "и" шаблон "и" скрипт "и" класс "и" функция " и т.д. Это звучит точно так же, как то, что задокументировано как диалоговое окно для добавления конфигурация для модульного теста Python, а не например, параметры" имя "и" тест для запуска "и" ключевые слова", которые должны отображаться в настройки пы.тест диалог. В диалоговом окне нет ничего, чтобы переключить, какую тестовую структуру я добавляю.
Я использую PyCharm 1.5.2 на Windows с Python 3.1.3 и pytest 2.0.3. Я могу успешно запустить py.test на моих тестах из командной строки, так что это не что-то простое, как pytest не устанавливается должным образом.
Как настроить PyCharm для запуска мой пай.тестовые тесты?
8 ответов:
пожалуйста, перейдите в Файл / Настройки | инструменты / Python интегрированные инструменты и измените тестовый бегун по умолчанию на py.тест. Тогда вы получите py.тестовая опция для создания тестов вместо unittest.
PyCharm 2017.3
Preference -> Tools -> Python integrated Tools- выбратьpy.testкакDefault test runner.- если вы используете Django
Preference -> Languages&Frameworks -> Django- установить галочку наDo not use Django Test runner- очистить все предыдущие запущенные тесты от
Run/Debug configuration, в противном случае тесты будут выполняться с этой конфигурацией.- для установки некоторых дополнительных аргументов по умолчанию обновите py.проверьте конфигурацию по умолчанию.
Run/Debug Configuration -> Defaults -> Python tests -> py.test -> Additional Arguments
Я думаю, что вам нужно использовать элемент конфигурации Run/Debug на панели инструментов. Нажмите на него и "редактировать конфигурации" (или в качестве альтернативы используйте пункт меню Run->Edit Configuration). В разделе ' Defaults 'в левой панели есть' py.тест ' пункт, который я думаю, что это то, что вы хотите.
Я также обнаружил, что руководство не соответствует пользовательскому интерфейсу для этого. Надеюсь, я правильно понял проблему, и это помогает.
Это плохо документировано, чтобы быть уверенным. Как только вы добавляете новую конфигурацию по умолчанию, вы будете в сфере управления "/приложения/PyCharm CE.app/Contents/helpers/pycharm/pytestrunner.py" сценарий. Он не документирован и имеет свои собственные идеи аргументов командной строки.
вы можете:
- попробуйте поиграть, изменить сценарий, и посмотреть, если вы можете как-то получить py.проверьте, чтобы принять аргументы. Это может сработать, но не в первые полчаса мне.
- просто запустите "py.тест *.Ру" из консоли.
Как ни странно, вам будет трудно найти какую-либо дискуссию, поскольку JetBrains отлично справляется с бомбардировкой алгоритмов Google своими собственными страницами.
найти эту тему, когда я ударил тот же вопрос и нашел решение версия pycharm: 2017.1.2 перейдите в раздел "Настройки" - > "инструменты" - > "интегрированные инструменты Python" и установите тестовый запуск по умолчанию с правой боковой панели как py.тест решите мою проблему
Я использую 2018.2
Я запускаю - > редактировать конфигурации... Затем нажмите кнопку + в левом верхнем углу модального диалогового окна. Выберите "тесты python" - > py.тест Затем я даю ему имя типа " все тесты с py.тест"
Я выбираю цель: имя модуля и поместите в модуль, где мои тесты (то есть "тесты" для меня) или модуль, где весь мой код, если мои тесты смешаны с моим кодом. Это сбивало меня с толку.
Я установил интерпретатор Python.
I установите рабочий каталог в каталог проекта.
вот как я сделал это работать с pytest
3.7.2(устанавливается через pip) и pycharms2017.3:
- на
edit configurations
- добавьте новую конфигурацию запуска и выберите
py.test
- в деталях конфигурации запуска вам нужно установить
target=pythonи неназванное поле ниже, чтобыtests. Похоже, это имя вашей тестовой папки. Не слишком уверен, что жестко. Я также рекомендую-sаргумент, чтобы при отладке тестов консоль вела себя правильно. Без аргумента pytest захватывает вывод и делает консоль отладки багги.
- моя папка тестов выглядит так. Это чуть ниже корня моего проекта (
my_project/tests).
- мой
foobar_test.pyfile: (нет импорта необходимо):def test_foobar(): print("hello pytest") assert True
- запустите его с помощью обычной команды запуска
со специальной установкой conda python, которая включала установку pip для py.использование тест плюс встраивания технические характеристики (вариант-спецификации) (для вас, как хороший тест резюме язык), я должен был сделать ;
1.Измените значение по умолчанию py.тест для включения option= --spec, что означает использование плагина:https://github.com/pchomik/pytest-spec
2.Создайте новую конфигурацию теста, используя py.тест. Измените свой интерпретатор python, чтобы использовать ~ / anaconda / envs / ваш выбор переводчиков, например, py27 для моих имен.
3.Тестовая конфигурация удалить 'unit-тестов'.
4.Теперь Тестовая конфигурация по умолчанию - py.тест с моими прекрасными выходами стиля Rspec. Мне это нравится! Спасибо вам всем!
P.s. JetBrains' doc on run/debug configs находится здесь: https://www.jetbrains.com/help/pycharm/2016.1/run-debug-configuration-py-test.html?search=py.test





Comments