Нужно ли запускать make / make install, чтобы проверить каждое изменение в дистрибутиве Perl? - PullRequest
2 голосов
/ 22 января 2010

Должен ли я запускать make и make install каждый раз, когда я изменяю .pm файл для Perl? Я делаю кучу испытаний, и это становится громоздким.

Ответы [ 4 ]

5 голосов
/ 22 января 2010

Вам не нужно устанавливать модуль для его проверки.

Если я тестирую внутри своего дистрибутивного каталога, я просто использую цель test:

 % make test

Или, если я использую Module :: Build:

 % ./Build test

Поскольку make - это инструмент управления зависимостями, он также позаботится о любых других шагах, которые ему необходимо выполнить, чтобы он мог запустить цель test. Вам не нужно запускать каждую цель отдельно. Module :: Build делает то же самое.

Если я хочу проверить один файл, я объединяю команду make с вызовом perl, который также использует модуль blib для установки права @INC:

 % make; perl -Mblib t/single_test.t

Некоторым людям нравится использовать prove для одной и той же вещи. Независимо от того, какой метод я использую, я, вероятно, использую клавиши со стрелками, чтобы вернуться к предыдущей командной строке и перезапустить ее. Я очень мало набираю что-либо из этого.

3 голосов
/ 22 января 2010

Это зависит от настройки модуля, но в соответствии со стандартным MakeMaker, который я использую, «make test» запускает «make», если какие-либо файлы были изменены, поэтому при выполнении внутримодульной разработки «make test» - единственная команда, которая вам нужна. пока ты не закончил.

1 голос
/ 22 января 2010

Эван Кэрролл понял это правильно. Чтобы расширить его ответ: используйте инструменты тестирования, поставляемые с Perl, чтобы усилить рабочий процесс.

Допустим, вы находитесь в каталоге вашего проекта и взламываете файлы в его подкаталоге lib/. Выполните prove -l, чтобы запустить все тесты. Это проще, чем возиться с абсолютными путями в переменной окружения PERL5LIB.

0 голосов
/ 22 января 2010

Предположительно, вы редактируете модуль lib в месте, отличном от lib, вместо того, чтобы забивать глобальную библиотеку для каждой модификации - сделайте разумную вещь и измените путь к библиотеке, используемый perl с помощью PERL5LIB, который будет внутренне добавляться к @INC (use путь поиска):

PERL5LIB=/home/user/code/perl/project/lib perl myapp.pl

Если ваша программа не является чисто perl и требует систему make, нет способа сделать это за исключением пересборки, но чистый perl (PP) действительно не требует make при нормальных обстоятельствах. Если вы сделаете это таким образом, запуск perl в обычной среде даст предсказуемые и протестированные результаты, запуск с вашим PERL5LIB позволит вам протестировать программу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...