Fre*_*rik 1 testing perl unit-testing
我有一个Test :: More测试脚本,用于我们制作的模块.单独运行测试脚本时,它的工作方式与预期一致.由于我们需要运行多个测试,因此我制作了一个运行所有脚本的Test :: Harness文件.但是,从Test :: Harness 执行时runtests,脚本会返回错误.
在调试过程中,我尝试使用backtics来运行脚本,这很有效.因此runtest命令导致错误.
线束的代码非常简单:
(perl) -w
use strict;
use warnings;
use Test::Harness;
my @tests = ('test1.pl', 'test2.pl', 'test3.pl');
runtests(@tests);
Run Code Online (Sandbox Code Playgroud)
错误源自我们使用的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
为什么不让Test :: Harness从命令行动态构建测试环境?
prove test*.pl
Run Code Online (Sandbox Code Playgroud)
或者,如果您将测试保留在t/目录中作为标准:
prove -r t/
Run Code Online (Sandbox Code Playgroud)