Возможно, только немного сложнее (без Configure
или make
необходимо), может быть полезно:
Схема тестирования в исходном дистрибутиве загружает все из каталога /path/to/src/distribution/lib'. The key to running your existing perl installation against this test suite is to put all of the install libraries into this
lib`,Это можно сделать с помощью чего-то вроде:
cd /path/to/src/distribution
mv lib lib-original
mkdir lib
/path/to/installed/perl -e 'system qq{cp -prv "$_/." lib/}' \
-e 'for "lib-original",grep /../,reverse(@INC)'
(возможно, есть более надежная команда perl
, которая использует -MFile::Copy
, но эта быстрая и грязная строчка заставила меня двигаться).Мы используем reverse @INC
, чтобы библиотеки с передней части @INC
перезаписывали более поздние библиотеки, а не наоборот.Предложение grep /../,...
не позволяет нам скопировать .
в lib
, что, вероятно, было бы бесполезно.
Я нашел несколько тестов, которые используют жестко заданные пути к perl
, psed
иs2p
в исходном каталоге.Вы должны убедиться, что эти файлы существуют, и что тесты нацелены на установленные версии этих программ.
rm -f perl t/perl psed t/psed x2p/s2p
ln -s /path/to/installed/perl perl
ln -s /path/to/installed/perl t/perl
ln -s /path/to/installed/psed psed
ln -s /path/to/installed/psed t/psed
ln -s /path/to/installed/s2p x2p/s2p
Теперь используйте обычную идиому Unix-y для запуска набора тестов Perl:
cd t
/path/to/installed/perl -MExtUtils::Command::MM \
-e 'test_harness(0,"../lib")' */*.t
Некоторые тесты могут явно касаться проверки целостности процесса сборки из источника, поэтому следует ожидать некоторых сбоев.
(этот процесс тестировался на v5.14.0, v5.8.9,v5.10.1)
Обновление: еще сложнее.В типичном исходном дистрибутиве есть много других t
каталогов.Возможно, вы также захотите попробовать:
cd /path/to/source/distribution
for dir in */*/
do
if [ -d $dir/t ] ; then
pushd $dir
echo Testing $dir
/path/to/installed/perl -MExtUtils::Command::MM \
-e 'test_harness(0,"../../lib","lib")' t/*.t
popd
fi
done
Многие из этих тестов явно проверяют целостность сборки, поэтому вы можете ожидать, что многие из этих тестов не пройдут.