Я пишу Perl t / *. T тесты для существующего проекта. Во время разработки я хотел бы использовать команду «доказательства» для запуска выбранных тестов на произвольной глубине в иерархии каталогов модулей. Я создал несколько каталогов t / на той же глубине, что и файлы * .pm, которые я хотел бы проверить. К сожалению, lib / в основе кода проекта не находится в @ INC.
Каков наилучший способ автоматического определения и добавления пути к @INC? Я посмотрел опцию -b, чтобы доказать и blib в целом, но, похоже, они не работают (они берут pwd, добавляют к нему blib / lib и добавляют его в @INC). В идеале решение не требует переменной среды или установки модулей и будет содержать несколько рабочих копий одного и того же кода.
Мой подход неверен? Есть ли что-то очевидное, что мне не хватает? Модули CPAN, похоже, решают эту проблему путем установки или скопированных блоков кода в верхней части файлов * .t (гадость).
Edit:
Структура выглядит так:
/home/user/proj/branch\_foo/lib/First/Second/Third.pm
/home/user/proj/branch\_foo/lib/First/Second/t/third.t
Это работает:
~/proj/branch\_foo/lib/First/Second$ prove -I../..
Но я бы хотел:
~/proj/branch\_foo/lib/First/Second$ prove -r
Или:
~/proj/branch\_foo/lib/First/Second$ prove t/third.t
Так что я могу сделать:
~/proj/branch\_foo/lib$ prove -r
Вместо:
~/proj/branch\_foo/lib$ prove -I. -r
Может быть, мне просто нужно использовать -I
и разобраться с этим.