Spec-Zone.ru › Perl 5.34

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::

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

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.34.0/Test2

Spec-Zone.ru

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