首先,我認爲有人需要重寫我的問題,我知道我在問什麼,而不是我應該怎樣準確地提問。如何測試自己的Perl模塊,而不依賴於生產中的其他模塊?
假設我有一些本地模塊LOCAL::Commons
,它有一個名爲globalTrim
的子例程。我正在測試下面的子程序,雖然LOCAL::Commons
安裝在/usr/local/lib/perl
下,但我在下面測試的模塊位於目錄/home/me/perl/LOCAL/
。看看我如何使用use lib ...
來確保我沒有使用LOCAL::Commons
位於/usr/local/lib/perl
(我的路徑上有這個目錄)。
現在,如果LOCAL::Commons
正在使用另一個本地模塊LOCAL::Cool
(即不是cpan),並且我還對該模塊進行了一些更改,如何確保我的測試正在使用正確的模塊?也就是說,我想LOCAL::Commons
使用/home/me/perl/LOCAL/Cool
而不是/usr/local/lib/perl/LOCAL/Cool
。
#!/usr/bin/perl
# test_local_commons.pl
# directory: /home/me/perl
use strict;
use warnings;
use Test::More 'no_plan';
use File::Temp qw(tempfile tempdir);
use Cwd qw();
use lib Cwd::abs_path();
# Testing
use LOCAL::Commons qw (globalTrim);
sub newTest($) {
my $name = shift;
print "---------------------------------------------------\n";
print $name, "\n";
print "---------------------------------------------------\n";
}
sub testTraverse {
is(globalTrim(" - stackoverflow -), "-stackoverflow-", "Passed");
}
newTest "testTraverse"; testTraverse();
使用'使用lib Cwd :: abs_path();'工程 – Moni 2013-03-21 13:52:27