Прежде чем, я перейду к описанию работы с модулями Test::More, Test::Harness и Test::Simple, хотелось бы уточнить, что такое TAP — упоминание которого, время от времени, появляется при обсуждении темы тестирования программ.
Текст данной темы — в основном, перевод подходящего текста из Википедии (ссылка ниже).
Пожалуй, единственный материал в данной теме, который практически не подвергался мною никакой
обработке, кроме перевода. :)
Test Anything Protocol (TAP) — единый формат передачи результатов тестирования программам, которые интерпретируют результаты, и в зависимости от них, выполняют какие-либо действия. Более простое определение — единый формат вывода результатов тестирования.
TAP не привязан к определенному языку программирования, однако, чаще всего используется Perl-програмистами.
Основной формат TAP:
Например, тестирование чтения данных из файла, могло бы дать такой результат:
Использование TAP позволяет отделить программу-тест, от программы, которая автоматически запускает тестовые скрипты, получает и обрабатывает результаты, анализирует их. Преимущества подобного подхода:
Список библиотек (модулей), которые предназначены для анализа TAP и публикации результатов тестирования.
Список библиотек, предназначенных для написания тестов и осуществляющих вывод данных в формате TAP.
RUS
Написание автоматических тестов и среда phpUnit
ENG
http://en.wikipedia.org/wiki/Test_Anything_Protocol
testanything.org. Специализированный по TAP ресурс
Текст данной темы — в основном, перевод подходящего текста из Википедии (ссылка ниже).
Пожалуй, единственный материал в данной теме, который практически не подвергался мною никакой
обработке, кроме перевода. :)
Test Anything Protocol (TAP) — единый формат передачи результатов тестирования программам, которые интерпретируют результаты, и в зависимости от них, выполняют какие-либо действия. Более простое определение — единый формат вывода результатов тестирования.
TAP не привязан к определенному языку программирования, однако, чаще всего используется Perl-програмистами.
Основной формат TAP:
1..N
ok 1 Description # Directive
# Diagnostic
…
ok 47 Description
ok 48 Description
more tests…
Например, тестирование чтения данных из файла, могло бы дать такой результат:
1..4
ok 1 — Input file opened
not ok 2 — First line of the input valid
ok 3 — Read the rest of the file
not ok 4 — Summarized correctly # TODO Not written yet
Использование TAP позволяет отделить программу-тест, от программы, которая автоматически запускает тестовые скрипты, получает и обрабатывает результаты, анализирует их. Преимущества подобного подхода:
- возможность писать тесты на разных языках программирования, которые будут пересылать результаты общему обработчику для анализа и формирования отчетов;
- использование единых правил для вывода результатов тестирования:
- программисту не нужно беспокоиться о формате вывода отчетов, их внешнем виде, создании удобного интерфейса взаимодействия с тестом.
- результаты выполнения всех тестов передаются общему обработчику, который отвечает за стандартный внешний вид и формат отчетов.
- после написания очередного теста, программист вносит в код обработчика ссылку на новый файл. При поступлении соответствующей команды, обработчик автоматически запускает на выполнение все ранее указанные тестирующие скрипты. Соответственно, программист освобождается от необходимости вручную запускать на выполнение каждый тест (если тестовых файлов больше 20, и тесты проводятся регулярно — появляется значительная экономия времени.)
Анализаторы TAP
Список библиотек (модулей), которые предназначены для анализа TAP и публикации результатов тестирования.
- Test::Harness — является самым старым и самым полным анализатором TAP. Чаще всего работает с тестами, написанными на Perl.
- t/TEST — анализатор, входящий в исходный код Perl.
- TAP::Parser — это один из новейших и самых гибких анализаторов. Ранее его называли TAPx::Parser.
- Test::Run — анализатор, который стал ответвлением Test::Harness .
- test-harness.php — TAP анализатор для PHP.
Библиотеки для работы с TAP
Список библиотек, предназначенных для написания тестов и осуществляющих вывод данных в формате TAP.
- Test::More — самый популярный модуль Perl, для создания тестов.
- PHPUnit — порт JUnit на PHP. Среда для написания тестов на PHP.
- test-more.php — модуль для создания тестов на PHP, созданный на основе Test::More.
- libtap — библиотека для работы с TAP, написанная на C.
- Test.Simple — порт Test::Simple (Perl) и Test::More модулей на JavaScript.
- PyTAP — библиотека для работы с TAP, для Питона.
- MyTAP — тестовая библиотека MySQL, используется для написания TAP-процедур на C или C++.
Полезные ссылки
RUS
Написание автоматических тестов и среда phpUnit
ENG
http://en.wikipedia.org/wiki/Test_Anything_Protocol
testanything.org. Специализированный по TAP ресурс