Spec-Zone.ru › Perl 5.38

Test2

СОДЕРЖАНИЕ

  • НАЗВАНИЕ
  • ОПИСАНИЕ
    • ЧТО НОВОГО?
  • НАЧАЛО РАБОТЫ
  • РАСПРЕДЕЛЕНИЕ ИМЕННЫХ ПРОСТРАНСТВ
    • Test2::Tools::
    • Test2::Plugin::
    • Test2::Bundle::
    • Test2::Require::
    • Test2::Formatter::
    • Test2::Event::
    • Test2::Hub::
    • Test2::IPC::
      • Test2::IPC::Driver::
    • Test2::Util::
    • Test2::API::
    • Test2::
  • СМОТРИТЕ ТАКЖЕ
  • КОНТАКТЫ
  • ИСТОЧНИК
  • СОЗДАТЕЛИ
  • АВТОРЫ
  • АВТОРСКИЕ ПРАВА

НАЗВАНИЕ

Test2 - Фреймворк для написания инструментов тестирования, которые работают вместе.

ОПИСАНИЕ

Test2 — новый фреймворк для тестирования, созданный путем форкинга Test::Builder, полностью переработанный, с добавлением многих новых функций и возможностей.

ЧТО НОВОГО?

Проще тестировать новые инструменты тестирования.

С самого начала Test2 был разработан с возможностями интроспекции. С Test::Builder захватить выходные данные инструмента тестирования для проверки было сложно, а Test2 делает это легко с помощью Test2::API::intercept().

Улучшенные возможности диагностики.

Test2 использует объект Test2::API::Context для отслеживания имени файла, номера строки и деталей инструмента. Этот объект значительно упрощает отслеживание места, где следует сообщать об ошибках.

Движение на основе событий.

Инструменты на основе Test2 генерируют события, которые проходят через систему обработки перед выводом форматировщиком. Эта система событий позволяет реализовать богатую поддержку плагинов и расширений.

Более полный API.

Test::Builder предоставлял лишь несколько методов для генерации строк TAP. Test2 учёл всё, что люди делали с Test::Builder, требуя его модификации. Test2 предоставляет публичные API-функции для почти всех необходимых функций, которые у людей раньше не было.

Поддержка вывода, отличного от TAP.

Test::Builder предполагал, что всё будет в формате TAP. Test2 таких предположений не делает. Test2 предоставляет способы указания альтернативных и пользовательских форматировщиков.

Реализация подтестов более осмысленная.

Реализация подтестов в Test::Builder была явно неадекватной. Test2 использует стековую систему центра событий, что значительно улучшает реализацию подтестов.

Поддержка многопоточности/виртуализации.

Поддержка Test2 для виртуализации и многопоточности может быть включена с использованием Test2::IPC. После включения многопоточность и виртуализация работают в соответствии с ожиданиями.

НАЧАЛО РАБОТЫ

Если вы заинтересованы в написании тестов с помощью новых инструментов, обратите внимание на Test2::Suite. Test2::Suite — отдельное распределение cpan, содержащее множество инструментов, реализованных на Test2.

Если вы заинтересованы в написании новых инструментов, сначала ознакомьтесь с Test2::API.

РАСПРЕДЕЛЕНИЕ ИМЕННЫХ ПРОСТРАНСТВ

Это описывает распределение именных пространств для экосистемы Test2. Не все указанные здесь пространства имён входят в дистрибутив Test2, некоторые реализованы в Test2::Suite.

Test2::Tools::

Это пространство имён для наборов инструментов. Модули в этом пространстве имён должны экспортировать инструменты, такие как ok() и is(). Большинство вещей, написанных для Test2, должны находиться здесь. Модули в этом пространстве имён НЕ ДОЛЖНЫ экспортировать подпрограммы из других инструментов. Обратитесь к пространству имён "Test2::Bundle::", если вы хотите это сделать.

Test2::Plugin::

Это пространство имён для плагинов. Плагины — это модули, которые изменяют или улучшают поведение Test2. Примером плагина является модуль, устанавливающий кодировку utf8 глобально. Другой пример — модуль, вызывающий событие отказа после первой неудачи теста.

Test2::Bundle::

Это пространство имён для наборов инструментов и плагинов. Загрузка одного из них может загрузить несколько инструментов и плагинов. Модули в этом пространстве имён не должны реализовывать инструменты напрямую. В общем, модули в этом пространстве имён должны загружать инструменты и плагины, а затем повторно экспортировать их в пространство имён потребителей.

Test2::Require::

Это пространство имён для модулей, которые приводят к пропуску теста, когда условия не позволяют его выполнить. Примеры — модули, пропускающие тест в старых Perl, или когда не установлены необходимые модули.

Test2::Formatter::

Форматировщики находятся в этом пространстве имён. Test2::Formatter::TAP — единственный форматировщик в настоящее время. Распределения сторонних производителей могут создавать новые форматировщики в этом пространстве имён.

Test2::Event::

События находятся в этом пространстве имён. Добавление новых типов событий в этом пространстве имён для распределений третьих сторон считается приемлемым.

Test2::Hub::

Подклассы Hub (и некоторые вспомогательные объекты Hub) находятся в этом пространстве имён. Добавление новых подклассов Hub в этом пространстве имён для распределений третьих сторон вполне допустимо.

Test2::IPC::

Подсистема IPC находится в этом пространстве имён. Существует не много хороших причин для добавления чего-либо в это пространство имён, за исключением драйверов IPC.

Test2::IPC::Driver::

Драйверы IPC находятся в этом пространстве имён. Создание новых драйверов IPC и размещение их в этом пространстве имён допустимо.

Test2::Util::

Это пространство имён для общих утилит, используемых инструментами тестирования. Пожалуйста, будьте внимательны при добавлении новых модулей в это пространство имён.

Test2::API::

Это пространство имён для API Test2 и связанных пакетов.

Test2::

Пространство имён Test2:: предназначено для расширений и фреймворков. Инструменты, плагины и т. д. не должны попадать напрямую в это пространство имён. Однако расширения, используемые для построения инструментов и плагинов, могут размещаться здесь.

Короче говоря: если модуль экспортирует что-либо, что должно выполняться непосредственно скриптом теста, то он, вероятно, НЕ должен попадать напрямую в Test2::XXX.

СМОТРИТЕ ТАКЖЕ

Test2::API — основные API-функции.

Test2::API::Context — подробная документация по объекту контекста.

Test2::IPC — система IPC, используемая для поддержки многопоточности/виртуализации.

Test2::Formatter — форматировщики, такие как TAP, находятся здесь.

Test2::Event — события находятся в этом пространстве имён.

Test2::Hub — все события в конечном итоге поступают через концентратор. Настраиваемые концентраторы — это способ реализации intercept() и run_subtest().

КОНТАКТЫ

Многие разработчики и пользователи Test2 общаются на irc://irc.perl.org/#perl-qa и irc://irc.perl.org/#toolchain. У нас также есть команда Slack, к которой может присоединиться любой человек с @cpan.org адресом электронной почты https://perl-test2.slack.com/. Если у вас нет @cpan.org адреса электронной почты, вы можете запросить приглашение в Slack, отправив электронное письмо Чаду Грануму <exodist@cpan.org>.

ИСТОЧНИК

Репозиторий исходного кода Test2 находится по адресу http://github.com/Test-More/test-more/.

СОЗДАТЕЛИ

Чэд Гранум <exodist@cpan.org>

АВТОРЫ

Чэд Гранум <exodist@cpan.org>

АВТОРСКИЕ ПРАВА

Авторские права 2020 Чэд Гранум <exodist@cpan.org>.

Эта программа является свободной программной; вы можете распространять и/или изменять её в соответствии с условиями Perl.

См. http://dev.perl.org/licenses/

© 1993–2023 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation.
https://perldoc.perl.org/5.38.0/Test2

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API