Spec-Zone.ru › Perl 5.28

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>

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

Авторские права 2018 года Чэд Гранум <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.28.3/Test2

Spec-Zone.ru

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