Spec-Zone.ru › Perl 5.36

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–2021 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.36.0/Test2

Spec-Zone.ru

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