我有一個Test::More測試腳本,用於我們製作的模塊。當它自己運行測試腳本時,它就像預期的那樣工作。 由於我們需要運行幾個測試,我製作了一個運行所有腳本的文件Test::Harness。但是,從Test::Harnessruntests
執行時,該腳本會返回錯誤。當我使用Test :: Harness :: runtests運行它們時,爲什麼我的Perl模塊測試失敗?
在調試過程中,我試圖通過使用backtics運行腳本,並且工作。所以runtest命令導致了錯誤。
線束的代碼是非常簡單的:
(perl) -w
use strict;
use warnings;
use Test::Harness;
my @tests = ('test1.pl', 'test2.pl', 'test3.pl');
runtests(@tests);
的錯誤,從我們使用CPAN模塊,Pod::HtmlEasy起源。
我希望的解決方案是運行Test::Harness而不會出現錯誤。
從測試的輸出:
test1..........False [] range "\w-" in regex; marked by line 20. Use of uninitialized value in string ne at /app/perl/lib/Pod/HtmlEasy/Parser.pm line 422, line 20. Use of uninitialized value in string ne at /app/perl/lib/Pod/HtmlEasy/Parser.pm line 363, line 22. False [] range "\w-" in regex; marked by line 22. Use of uninitialized value in string ne at /app/perl/lib/Pod/HtmlEasy/Parser.pm line 488, line 24. Use of uninitialized value in string ne at /app/perl/lib/Pod/HtmlEasy/Parser.pm line 363, line 26. close() on unopened filehandle PODIN at /app/perl/lib/Pod/HtmlEasy.pm line 248. Use of uninitialized value in concatenation (.) or string at /app/perl/lib/Pod/HtmlEasy.pm line 318. (...) Use of uninitialized value in concatenation (.) or string at /app/perl/lib/Pod/HtmlEasy.pm line 396. test1..........ok 2/3close() on unopened filehandle PODIN at /app/perl/lib/Pod/HtmlEasy.pm line 248. Use of uninitialized value in concatenation (.) or string at /app/perl/lib/Pod/HtmlEasy.pm line 318. (...) Use of uninitialized value in concatenation (.) or string at /app/perl/lib/Pod/HtmlEasy.pm line 396. test1..........ok
您是否嘗試更新Pod :: HtmlEasy?看來正則表達式現在看起來有所不同,Changes文件表示最新版本有一個修復「克服看似隨機的CPAN測試失敗」。 – innaM 2009-12-07 10:03:06
@曼尼;謝謝,這似乎是一種前進的方式。我們使用的是原始開發人員的最新版本,從2004年開始爲0.07。 使用最新版本的確引入了一些其他問題,但我們需要解決這些問題...就像一些非向後兼容的更改。前進一步,退一步。 :) 無論如何,謝謝。 – Fredrik 2009-12-07 10:51:22