Spec-Zone.ru › Perl 5.30

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>

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

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

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

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

© 1993–2020 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.30.3/Test2

Spec-Zone.ru

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