Ниже приводится перевод главы Beginning Testing из учебника Perl Testing: A Developer`s Notebook
Практические занятия в этой главе проходят через самые элементарные шаги написания и выполнения автоматизированных тестов на Perl. К концу главы вы будете знать как начать тестирование, как работают библиотеки тестирования на Perl, и где найти дополнительные библиотеки, чтобы облегчить вашу работу.
Одной из сильных сторон Perl является CPAN - архив тысяч библиотек в свободном доступе, которые решают почти любые программные задачи, включая написание и выполнение тестов. Однако прежде, чем использовать эти модули, их нужно установить. Perl упрощает эту задачу.
Способы установки модулей Perl
Лучший способ установки модулей из CPAN через систему установки модулей, которая может сама произвести поиск, загрузку сборку, установку модулей и их зависимостей.
Через оболочку CPAN
На Unix-подобных платформах (включая Mac OS X), а также в Windows
если есть в наличии С компилятор, самый простой способ установки
модулей - использование модуля CPAN, который поставляется с Perl.
Например, если у вас еще не установлен модуль Test::Simple, запустите командную
оболочку CPAN, а затем введите install Test::Simple
. Ниже
приводится примерная картина установки этого модуля.
% cpan cpan shell -- CPAN exploration and modules installation (v1.7601) ReadLine support enabled cpan> install Test::Simple Running install for module Test::Simple Running make for M/MS/MSCHWERN/Test-Simple-0.54.tar.gz ... Appending installation info to /usr/lib/perl5/5.8.6/powerpc-linux/perllocal.pod /usr/bin/make install UNINST=1 -- OK
Примечание: Вы также можете запустить оболочку CPAN командой perl MCPAN -e shell
.
Если Test::Simple
имеет какие-либо зависимости (в нашем случае их
нет), оболочка обнаружит их и установит их первыми.
Если вы запускаете оболочку cpan впервый раз, возможно нужно будет указать конфигурацию системы, сети и.т.п. Обычно по умолчанию настройка производится автоматически.
Через PPM
В Windows чаще в всего используется дистрибутив Perl от ActiveState, в которую входит утилита ppm для загрузки, конфигурации, сборки и установки модулей. Если у вас установлен ActivePerl, откройте окно консоли и введите:
C:\>PPM PPM> install Test-Simple
Примечание: ActivePerl также выпускает дистрибутивы Perl для Linux и Solaris, так что вышеуказанные инструкции работают и там.
Если конфигурация указана верно, ppm загрузит и установит последнюю
версию Test::Simple
из репозитория ActiveState.
Если модуля нет в репозитории вообще, либо его версия в репозитории не самая последняя, у вас есть несколько вариантов.
Первый вариант - вы можете найти альтернативные репозитории. Смотрите список ppm репозиториев . Ниже приводится пример подключения репозитория к PPM.
C:\>PPM PPM> set repository dada http://dada.perl.it/PPM PPM> set save
Вручную
Если вы хотите вручную установить модуль на чистом Perl или работаете на пларформе, где имеется соответствующий компилятор, вы можете загрузить и установить модуль вручную. Найти подходящий модуль можно на сайте http://search.cpan.org. После того, как вы нашли и загрузили архив модуля, распокуйте его в домашнем каталоге:
$ tar xvzf Test-Simple-0.54.tar.gz Test-Simple-0.54/ ...
Примечание: Чтобы установить среду компиляции для Perl на Windows, обратитесь к файлу README.win32, который поставляется вместе с Perl.
Запустите программу Makefile.PL и затем выполните стандартные команды сборки и тестирования модуля:
$ perl Makefile.PL Checking if your kit is complete... Looks good Writing Makefile for Test::Simple $ make ... cp lib/Test/Builder.pm blib/lib/Test/Builder.pm cp lib/Test/Simple.pm blib/lib/Test/Simple.pm $ make test
Примечание: Загруженный архив имеет статус "Текущий релиз"(This Reliase), если вы планируете помочь в развитии модуля, нужно загрузить его последний релиз для разработчиков (Latest Dev Release).
Если все тесты пройдены, отлично! В противном случае, сделайте все возможное, чтобы выяснить, что не удалось сделать, почему, и насколько это поправимо. Наконец, необходимо установить модуль, запустив make install (с привилегиями администратора, если вы устанавливаете модуль в системный каталог).
Обычно Makefile.PL использует модуль ExtUtils::MakeMaker для конфигурации и установки модулей. Но иногда для этой же цели используется Build.PL и Module::Build. В этом случае нужно указать другие команды установки:
$ perl Build.PL $ perl Build $ perl Build test # perl Build install
Примечание: на Unix можно использовать ./Build вместо perl Build.
В остальном, они работают практически идентично.
На Windows может потребоваться установка утилиты nmake от Microsoft для установки модулей вручную, которая использутеся так же, как и make. Таким образом, установка модулей на Windows производится командами nmake: nmake, nmake test, и nmake install.
Примечание: Файл README.win32 из исходного кода дистрибутива Perl может помочь в разрешении вопросов по утилите nmake.exe
Полезные статьи Perl по данной теме
Вопрос - ответ ...
- Вопрос:
Как я узнаю какое имя нужно указать, при установке модуля через PPM ? Я пытался установить Test-More, но утилита не может его найти!
- Ответ:
Такое бывает когда модуль входит в состав дистрибутива модулей, поэтому нужно установить сам дистрибутив. Определить к какому дистрибутиву относится модуль можно на http://search.cpan.org. В нашем примере Test::More входит в дистрибутив Test-Simple, поэтому нужно указать в PPM название дистрибутива Тest::Simple, чтобы установился модуль Test::More.
- Вопрос:
Я не системный администратор, или я не хочу устанавливать модули в системный каталог. Как я могу установить модуль в конкретный каталог?
- Ответ:
Укажите соответствующий параметр PREFIX при установке модуля. Например, PREFIX ~/perl/lib установит модуль в каталог ~/perl/lib (по меньшей мере, на Unix системах). Затем добавьте в переменную окружающей среды PERL5LIB путь к каталогу или не забывайте использовать прагму
lib
для добавления каталога в@INC
во всех программах, в которых будут вызваны локально установленные модули. Примечание: Почитайте perlfaq8 чтобы узнать больше о поддержке вашего собственного каталога модулей.Если вы устанавливаете модуль вручную, выполните Makefile.PL следующим образом:
$ perl Makefile.PL PREFIX=~/perl/lib
Примечание: MakeMaker 6.26 поддерживает INSTALLBASE, используйте его вместо PREFIX.
Если вы используете CPAN, можно настроить его для установки модулей в нужную вам директорию. Запустите оболочку CPAN под вашей учетной записью с последующим конфигурированием параметров.
% cpan ... # указать каталог установки модулей cpan[1]> o conf makepl_arg PREFIX=/home/UserName/mylib # зафиксировать изменения параметров cpan[2]> o conf commit
Если устанавливаемый модуль использует
Module::Build
, укажите параметр --installbase вместо PREFIX$ perl Build.PL --installbase=~/perl
Обратитесь к документации для ExtUtils::MakeMaker, CPAN, и Module::Build за более подробной информацией.