[Moscow.pm] Хуки при выполнении тестов

Тимур Нозадзе timur.nozadze на gmail.com
Ср Мар 14 13:14:03 PDT 2012


> Один раз на файл или один раз на несколько файлов?
Один раз на прогон тестов, независимо от того, прогоняется один файл
или несколько.
Т. е.  запускаем напрямую любой один тест (perl t/01-sometest.pl) --
действия выполняются в начале и конце 01-sometest.pl.
Запускаем набор файлов, например, через make test -- перед прогоном
первого теста в первом файле и после прогона последнего в последнем.


> BEGIN {}
> END {}
> не подходят?
>
> А если для всех файлов, то можно добавить в t/00-begin.t t/99-end.t
Вот как раз эти два варианта работают каждый в своём случае, а хочется
нечто комбинированное. Т. е. чтобы BEGIN отрабатывал только если
тест-файл -- первый в прогоняемом наборе, END -- только если последний
(в том числе, если он всего один).

Подозреваю, что если тесты запускаются через Test::Harness, наверное,
должен быть некий глобальный объект Test::Harness/Test::Builder, в
который можно полезть грязными руками, и, угрожая утюгом, вытащить у
него информацию обо всём наборе тестов и текущей позиции в нём.
Но подробностей как оно там внутри работает, я не знаю, да и не
хочется изобретать велосипед.


14 марта 2012 г. 23:48 пользователь Alexandr Gomoliako <zzz на zzz.org.ua> написал:
>>> Есть некий модуль с набором тестов.
>>> Перед прогоном тестов и после их завершения нужно выполнять некие
>>> инициализирующие/финализирующие действия, например, распаковать
>>> какие-нибудь данные, нужные для тестирования, а потом их удалить.
>>> Хочется, чтобы эти действия выполнялись ровно один раз, как при
>>> прогоне нескольких тестов через Test::Harness/TAP::Harness, так и при
>>> прямом запуске какого-нибудь одного тестового скрипта.
>>>
>>> Нет ли каких-нибудь готовых средств для подобной задачи? Поиск по CPAN
>>> пока ничего не дал.
>>
>> Один раз на файл или один раз на несколько файлов?
>
> BEGIN {}
> END {}
> не подходят?
>
> А если для всех файлов, то можно добавить в t/00-begin.t t/99-end.t
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org



-- 
С уважением, Тимур Нозадзе


Подробная информация о списке рассылки Moscow-pm