perl - 当我使用 Test::Harness::runtests 运行 Perl 模块测试时,为什么它们会失败?

标签 perl unit-testing 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);

错误源 self 们使用的 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

或者如果您按照标准将测试保存在 t/ 目录中:

prove -r t/

关于perl - 当我使用 Test::Harness::runtests 运行 Perl 模块测试时,为什么它们会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1858935/

相关文章:

perl - 使用 perl 使用 sendmail 发送电子邮件

unit-testing - 单元测试时使用 ServiceStack 将 Entity Framework Core Context 注入(inject)存储库

performance - 如何验证我的 LoadRunner 测试脚本是否确实在执行?

Perl 更改当前包?

perl - 在 perl 中发送多部分邮件

perl - 这个 Perl 语句是什么意思?

java - Mockito 错误 : "Wanted but not invoked:.. However, there were other interactions with this mock"

unit-testing - 单元测试 Dart 异步流

sql - 如何测试 SQL 数据库

java - 你如何检查最后一行字符是否出现在字符串中