pytest-2.7.0: исправления, функции, улучшение скорости работы¶
pytest - это зрелый инструмент тестирования Python с более чем 1100 тестами на самом себе, проходящими на многих различных интерпретаторах и платформах. Этот выпуск должен быть совместим с 2.6.X.
Изменения смотрите ниже, а также смотрите документацию по адресу:
Как обычно, вы можете обновиться с pypi через:
pip install -U pytest
Спасибо всем, кто внес свой вклад, среди них:
Анатолий Бубенкофф Флорис Брюнооге Брианна Логер Эрик Зигерман Даниэль Халер Чарльз Клауд Том Винер Хольгер Петерс Ldiary Переводы almarklein
веселись, хольгер крикет
2.7.0 (по сравнению с 2.6.4)¶
исправить issue435: заставить reload() работать, когда активна перезапись утверждений. Спасибо Даниэлю Халеру.
исправление проблемы616: файлы conftest.py и содержащиеся в них фикстуры теперь правильно учитываются для видимости, независимо от точного текущего рабочего каталога и используемых тестовых аргументов. Большое спасибо Эрику Зигерману и его PR235, который содержит систематические тесты на видимость conftest и теперь проходит. Это изменение также вводит понятие
rootdir
, которое выводится как новый заголовок pytest и документируется на веб-странице pytest customize.изменение отчетности о «перенаправленных» тестах, т.е. тестах, которые собраны в одном файле, но на самом деле приходят из другого (например, когда тесты в тестовом классе приходят из базового класса в другом файле). Теперь мы показываем nodeid и указываем через постфикс другой файл.
добавить возможность задавать опции командной строки переменной окружения PYTEST_ADDOPTS.
добавлена документация по новым командам pytest-dev на bitbucket и github. См. https://pytest.org/en/stable/contributing.html . Спасибо Анатолию за проталкивание и первоначальную работу над этим.
исправление issue650: новая опция
--docttest-ignore-import-errors
, которая будет превращать ошибки импорта в доктестах в пропуски. Спасибо Charles Cloud за полный PR.исправление issue655: работа над различными способами, которые приводят к тому, что python2/3 сливает sys.exc_info в фикстуры/тесты, вызывая сбои в коде сторонних разработчиков
исправление проблемы615: при перезаписи утверждений неправильно экранировались знаки % при форматировании булевых операций, что приводило к ошибкам при смешивании булевых операций с операторами modulo. Спасибо Тому Винеру за сообщение, устранение проблемы и исправление.
реализовать issue351: добавить возможность указывать идентификаторы параметров в качестве вызываемого параметра для генерации пользовательских идентификаторов тестов. Спасибо Brianna Laugher за идею и реализацию.
ввести и документировать новый механизм hookwrapper, полезный для подключаемых модулей, которые хотят обернуть выполнение определенных хуков для своих целей. Он заменяет недокументированный протокол
__multicall__
, который используется самим pytest и некоторыми внешними плагинами. Обратите внимание, что в pytest-2.8 планируется отказаться от поддержки старого протокола__multicall__
и поддерживать только протокол hookwrapper.значительно ускорить вызов хуков плагинов
использовать механизм hookwrapper во встроенных плагинах pytest.
добавить опцию doctest ini для флагов doctest, спасибо Хольгеру Петерсу.
добавить примечание к документации, что если вы хотите пометить параметр, а параметр является вызываемым, вам также нужно передать причину, чтобы отделить его от случая «декоратора». Спасибо, Том Винер.
Опции «python_classes» и «python_functions» теперь поддерживают glob-шаблоны для обнаружения тестов, как обсуждалось в issue600. Спасибо Ldiary Translations.
позволяют переопределять параметризованные фиксы непараметризованными и наоборот (bubenkoff).
исправление проблемы463: повышение специфической ошибки для неправильного написания „parameterize“ (pfctdayelise).
При неудаче устанавливаются значения
sys.last_value
,sys.last_type
иsys.last_traceback
, чтобы пользователь мог проверить ошибку через посмертную отладку (almarklein).