Это команда py.test-2.7, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
pytest - использование pytest
ВЫЗОВ ПИ.ТЕСТ ЧЕРЕЗ ПИТОН -M ПИ.ТЕСТ
Новое в версии 2.0.
Если вы используете Python-2.5 или новее, вы можете запустить тестирование через интерпретатор Python из
командная строка:
питон -m pytest [...]
Это эквивалентно вызову сценария командной строки. ру.тест [...] непосредственно.
ПОЛУЧЕНИЕ ПОМОГИТЕ ON ВЕРСИЯ, ВАРИАНТ ИМЕНА, ОКРУЖАЮЩАЯ СРЕДА ПЕРЕМЕННЫЕ
py.test --version # показывает, откуда был импортирован pytest
py.test --fixtures # показать доступные аргументы встроенной функции
py.test -h | --help # показать справку по параметрам командной строки и файла конфигурации
ОСТАНОВКА ПОСЛЕ ПЕРВЫЙ (ИЛИ N) ОТКАЗЫ
Чтобы остановить процесс тестирования после первых (N) сбоев:
py.test -x # остановить после первого сбоя
py.test --maxfail = 2 # остановить после двух сбоев
УКАЗАНИЕ ИСПЫТАНИЯ / ВЫБОР ИСПЫТАНИЯ
Несколько вариантов тестового запуска:
py.test test_mod.py # запускать тесты в модуле
py.test somepath # запускать все тесты ниже somepath
py.test -k stringexpr # запускать только тесты с именами, соответствующими
# "строковое выражение", например, "MyClass, а не метод"
# выберет TestMyClass.test_something
# но не TestMyClass.test_method_simple
py.test test_mod.py::test_func # запускать только те тесты, которые соответствуют "идентификатору узла",
# например, "test_mod.py::test_func" выберет
# только test_func в test_mod.py
py.test test_mod.py::TestClass::test_method # запускаем единственный метод в
# один класс
Импортируйте pkg и используйте его расположение в файловой системе для поиска и запуска тестов:
py.test --pyargs pkg # запустить все тесты из каталога pypkg
МОДИФИКАЦИЯ ПИТОН ПРОСЛЕДИТЬ ПЕЧАТЬ
Примеры изменения печати трассировки:
py.test --showlocals # показывать локальные переменные в трассировке
py.test -l # показать локальные переменные (ярлык)
py.test --tb = long # информативное форматирование трассировки по умолчанию
py.test --tb = native # форматирование стандартной библиотеки Python
py.test --tb = short # более короткий формат трассировки
py.test --tb = line # только одна строка на сбой
ПАДЕНИЕ К PDB (ПИТОН ОТЛАДЧИК) ON ОТКАЗЫ
Python поставляется со встроенным отладчиком Python под названием PDB. питест позволяет погрузиться в
PDB запрос через параметр командной строки:
py.test --pdb
Это будет вызывать отладчик Python при каждой ошибке. Часто вы можете захотеть сделать
это для первого неудачного теста, чтобы понять определенную неудачную ситуацию:
py.test -x --pdb # перейти в PDB при первой ошибке, затем завершить сеанс тестирования
py.test --pdb --maxfail = 3 # переход к PDB для первых трех сбоев
Обратите внимание, что при любом сбое информация об исключении сохраняется на sys.last_value,
sys.last_type и sys.last_traceback. При интерактивном использовании это позволяет перейти в
посмертная отладка с помощью любого средства отладки. Также можно вручную получить доступ к исключению
информация, например:
>>> import sys
>>> sys.last_traceback.tb_lineno
42
>>> sys.last_value
AssertionError ('результат утверждения == "хорошо"',)
НАСТРОЙКИ A ТОЧКА РАЗРЫВА / AKA SET_TRACE ()
Если вы хотите установить точку останова и введите pdb.set_trace () вы можете использовать помощник:
импортировать pytest
def test_function ():
...
pytest.set_trace () # вызвать отладчик PDB и трассировку
До версии pytest 2.0.0 вы могли только ввести PDB трассировка, если вы отключили захват
в командной строке через ру.тест -s. В более поздних версиях pytest автоматически отключает
захват вывода при вводе PDB отслеживание:
· На захват вывода в других тестах это не влияет.
· Любой предыдущий тестовый результат, который уже был записан и будет обработан как таковой.
· Любой более поздний результат, полученный в рамках того же теста, не будет записан и вместо этого будет
отправлено прямо в sys.stdout. Обратите внимание, что это справедливо даже для тестовых выходных данных.
после выхода из интерактивного PDB сеанс трассировки и продолжить обычный тест
бежать.
Начиная с версии pytest 2.4.0 вы также можете использовать собственный Python Импортировать pdb; pdb.set_trace ()
позвонить, чтобы войти PDB трассировка без использования pytest.set_trace () обертка или
явно отключить захват вывода pytest через ру.тест -s.
ПРОФИЛИРОВАНИЕ ИСПЫТАНИЕ ИСПОЛНЕНИЕ Длительность сезона
Чтобы получить список из 10 самых медленных тестов:
py.test --durations = 10
ФОРМИРОВАНИЕ ЮНИТКСМЛ ФОРМАТ FILES
Для создания файлов результатов, которые могут быть прочитаны Гудзон или другая непрерывная интеграция
серверов, используйте этот вызов:
py.test --junitxml = путь
для создания файла XML на путь.
запись_xml_property
Новое в версии 2.8.
Если вы хотите записать дополнительную информацию для теста, вы можете использовать запись_xml_property
приспособление:
def test_function (record_xml_property):
record_xml_property ("example_key", 1)
утверждать 0
Это добавит дополнительное свойство example_key = "1" к созданным контрольный пример тег:
ПРЕДУПРЕЖДЕНИЕ:
Это экспериментальная функция, и ее интерфейс может быть заменен чем-то другим.
мощный и общий в будущих версиях. Сама функциональность будет сохранена,
Однако.
В настоящее время он не работает при использовании с pytest-xdist .
Также обратите внимание, что использование этой функции нарушит любую проверку схемы. Этот
может быть проблемой при использовании с некоторыми серверами CI.
ФОРМИРОВАНИЕ РЕЗУЛЬТАТЫ ФОРМАТ FILES
Чтобы создать машиночитаемые файлы результатов в виде простого текста, вы можете выполнить:
py.test --resultlog = путь
и посмотрите на содержание путь место нахождения. Такие файлы используются, например, PyPy-тест
веб-страницу, чтобы показать результаты тестирования по нескольким версиям.
ОТПРАВКИ ИСПЫТАНИЕ ДОКЛАД К ОНЛАЙН ПАСТЕБИН СЕРВИС
Создающий a URL для каждый тестXNUMX недостаточность:
py.test --pastebin = не удалось
Это отправит информацию о тестовом запуске в удаленную службу вставки и предоставит URL-адрес для каждого
отказ. Вы можете выбрать тесты как обычно или добавить, например, -x если вы хотите отправить только один
конкретная неудача.
Создающий a URL для a все тестXNUMX Сессия журнал:
py.test --pastebin = все
В настоящее время только вставка в http://bpaste.net услуга реализована.
ОТКЛЮЧЕНИЕ PLUGINS
Чтобы отключить загрузку определенных плагинов во время вызова, используйте -p вариант вместе с
префикс нет:.
Пример: отключить загрузку плагина доктест, который отвечает за выполнение doctest
тесты из текстовых файлов, вызовите py.test следующим образом:
py.test -p нет: doctest
ВЫЗОВ ПИ.ТЕСТ от ПИТОН КОД
Новое в версии 2.0.
Вы можете вызвать питест напрямую из кода Python:
pytest.main ()
это действует так, как если бы вы вызывали "py.test" из командной строки. Это не поднимет
SystemExit но вместо этого верните код выхода. Вы можете передать параметры и аргументы:
pytest.main (['- x', 'mytestdir'])
или передайте строку:
pytest.main ("- x mytestdir")
Вы можете указать дополнительные плагины для pytest.main:
# содержание myinvoke.py
импортировать pytest
класс MyPlugin:
def pytest_sessionfinish (сам):
print ("*** завершение отчета о тестовом прогоне")
pytest.main ("- qq", plugins = [MyPlugin ()])
Запуск покажет, что Мой плагин был добавлен и был вызван его хук:
$ питон myinvoke.py
*** Завершение отчета о тестовом прогоне
Используйте py.test-2.7 онлайн с помощью сервисов onworks.net