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