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).

Вернуться на верх