Pull to refresh

Тестирование программ Perl для начинающих. Test Anything Protocol (TAP)

Reading time 3 min
Views 4.6K
Прежде чем, я перейду к описанию работы с модулями Test::More, Test::Harness и Test::Simple, хотелось бы уточнить, что такое 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 позволяет отделить программу-тест, от программы, которая автоматически запускает тестовые скрипты, получает и обрабатывает результаты, анализирует их. Преимущества подобного подхода:
  • возможность писать тесты на разных языках программирования, которые будут пересылать результаты общему обработчику для анализа и формирования отчетов;
  • использование единых правил для вывода результатов тестирования:
    1. программисту не нужно беспокоиться о формате вывода отчетов, их внешнем виде, создании удобного интерфейса взаимодействия с тестом.
    2. результаты выполнения всех тестов передаются общему обработчику, который отвечает за стандартный внешний вид и формат отчетов.
  • после написания очередного теста, программист вносит в код обработчика ссылку на новый файл. При поступлении соответствующей команды, обработчик автоматически запускает на выполнение все ранее указанные тестирующие скрипты. Соответственно, программист освобождается от необходимости вручную запускать на выполнение каждый тест (если тестовых файлов больше 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 ресурс
Tags:
Hubs:
+1
Comments 0
Comments Leave a comment

Articles