có thể, chỉ có một chút khó khăn (không Configure
hoặc make
cần thiết), có thể hữu ích:
Đề án thử nghiệm trong tải phân phối nguồn tất cả mọi thứ ra khỏi thư mục lib` thư mục /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
. Điều này có thể được thực hiện với một cái gì đó như:
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)'
(có lẽ là một perl
lệnh mạnh mẽ hơn mà sử dụng -MFile::Copy
, nhưng một liner này nhanh chóng-và-bẩn đã cho tôi đi). Chúng tôi sử dụng reverse @INC
để các thư viện ở phía trước @INC
sẽ ghi đè các thư viện sau này chứ không phải cách khác. Điều khoản grep /../,...
ngăn chúng tôi sao chép .
vào lib
, điều này có thể không hữu ích.
Tôi đã tìm thấy một vài thử nghiệm sử dụng đường dẫn được mã hóa cứng đến perl
, psed
và s2p
trong thư mục nguồn. Bạn sẽ muốn đảm bảo rằng các tệp này tồn tại và các thử nghiệm nhắm mục tiêu các phiên bản đã cài đặt của các chương trình này.
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
Bây giờ sử dụng thường xuyên Unix-y thành ngữ khi chạy thử nghiệm bộ Perl:
cd t
/path/to/installed/perl -MExtUtils::Command::MM \
-e 'test_harness(0,"../lib")' */*.t
Một số xét nghiệm có thể rõ ràng về việc kiểm tra tính toàn vẹn của quá trình xây dựng từ mã nguồn, vì vậy một số thất bại được mong đợi.
(quá trình này được thử nghiệm trên v5.14.0, v5.8.9, v5.10.1)
Cập nhật: khó yên. Có rất nhiều thư mục t
khác bên trong một bản phân phối nguồn điển hình. Bạn cũng có thể muốn thử:
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
Nhiều thử nghiệm này kiểm tra rõ ràng tính toàn vẹn của bản dựng, vì vậy bạn có thể mong đợi nhiều thử nghiệm này thất bại.
haven; chưa thử điều này, nhưng tôi cho rằng trước tiên tôi phải thực hiện 'Cấu hình' và' make' ... hmmmm .... – ErikR