Test::Harness - 使用统计信息运行 Perl 标准测试脚本
版本 3.44
use Test::Harness;
runtests(@test_files);
尽管由于历史原因,Test::Harness 发行版以该模块命名,但它现在仅用于为 TAP::Harness 提供与 Test::Harness 2.xx 具有某种向后兼容性的接口。如果您正在编写新代码,请考虑直接使用 TAP::Harness。
为 runtests
和 execute_tests
提供了模拟,但 Test::Harness 的早期版本支持的可插拔“Straps”接口在此处未复制。Straps 现在可用作独立模块:Test::Harness::Straps。
有关此发行版的文档,请参阅 TAP::Parser、TAP::Harness。
可以使用以下函数。
这将运行所有给定的 @test_files,并根据它们输出到 STDOUT 的内容判断它们是通过还是失败(详细信息见上文)。它将打印出每个未通过的单独测试以及摘要报告和所有测试花费的时间。
如果一切正常,则返回 true。否则,它将使用 DIAGNOSTICS 部分中的一个消息调用 die()
。
运行所有给定的 @test_files
(就像 runtests()
一样),但不生成最终报告。在测试期间,进度信息将写入当前选定的输出文件句柄(通常为 STDOUT
),或写入由 out
参数给定的文件句柄。out 是可选的。
返回一个包含两个值($total
和 $failed
)的列表,用于描述结果。$total
是运行的所有测试的哈希引用摘要。它的键和值如下
bonus Number of individual todo tests unexpectedly passed
max Number of individual tests ran
ok Number of individual tests passed
sub_skipped Number of individual tests skipped
todo Number of individual todo tests
files Number of test files ran
good Number of test files passed
bad Number of test files failed
tests Number of test files originally given
skipped Number of test files skipped
如果 $total->{bad} == 0
且 $total->{max} > 0
,则测试成功。
$failed
是所有失败的测试脚本的哈希引用。每个键都是测试脚本的名称,每个值都是另一个哈希,表示该脚本如何失败。它的键如下
name Name of the test which failed
estat Script's exit value
wstat Script's wait status
max Number of individual tests
failed Number which failed
canon List of tests which failed (as string).
如果一切通过,则 $failed
应为空。
&runtests
默认情况下由 Test::Harness
导出。
&execute_tests
、$verbose
、$switches
和 $debug
根据请求导出。
Test::Harness
在执行各个测试之前设置这些变量。
HARNESS_PERL_SWITCHES
设置此项会向每个测试文件运行添加 Perl 命令行开关。
例如,HARNESS_PERL_SWITCHES=-T
将启用 taint 模式。HARNESS_PERL_SWITCHES=-MDevel::Cover
将为每个测试运行 Devel::Cover
。
始终设置 -w
。您可以在测试中使用 BEGIN { $^W = 0 }
关闭此项。
HARNESS_TIMER
将其设置为 true 将使测试工具显示每个测试花费的毫秒数。您还可以使用 prove 的 --timer
开关。
HARNESS_VERBOSE
如果为真,Test::Harness
将输出运行其测试的详细结果。设置 $Test::Harness::verbose
将覆盖此设置,或者你可以在 prove 实用程序中使用 -v
开关。
HARNESS_OPTIONS
为测试框架提供其他选项。当前支持的选项是
j<n>
运行 <n>(默认 9)个并行作业。
c
尝试为输出着色。请参阅 "new" in TAP::Formatter::Base。
a<file.tgz>
将使用 TAP::Harness::Archive 作为测试框架类,并将 TAP 保存到 file.tgz
fPackage-With-Dashes
设置正在运行的测试框架的 formatter_class。由于 HARNESS_OPTIONS
由 :
分隔,因此我们使用 -
代替。
多个选项可以用冒号分隔
HARNESS_OPTIONS=j9:c make test
HARNESS_SUBCLASS
指定一个 TAP::Harness 子类,以代替 TAP::Harness 使用。
HARNESS_SUMMARY_COLOR_SUCCESS
确定摘要的 Term::ANSIColor,以防它成功。此颜色默认为 'green'
。
HARNESS_SUMMARY_COLOR_FAIL
确定摘要的 Term::ANSIColor,以防它成功。此颜色默认为 'red'
。
通常,当 Perl 程序在 taint 模式下运行时,PERL5LIB
环境变量的内容不会出现在 @INC
中。
因为 PERL5LIB
通常在测试期间用于将构建目录添加到 @INC
中,所以 Test::Harness
将在 PERL5LIB
中找到的任何目录的名称作为 -I 开关传递。这样做的最终效果是,即使在 taint 模式下,PERL5LIB
也会受到尊重。
请将任何错误或功能请求报告给 bug-test-harness at rt.cpan.org
,或通过 http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-Harness 上的 Web 界面。我会收到通知,然后当你进行更改时,你将自动收到有关错误的进度通知。
Andy Armstrong <[email protected]>
Test::Harness 2.64(由 Andy Lester 维护,本模块基于此)具有以下归属
Either Tim Bunce or Andreas Koenig, we don't know. What we know for
sure is, that it was inspired by Larry Wall's F<TEST> script that came
with perl distributions for ages. Numerous anonymous contributors
exist. Andreas Koenig held the torch for many years, and then
Michael G Schwern.
版权所有 (c) 2007-2011,Andy Armstrong <[email protected]>
。保留所有权利。
本模块是免费软件;你可以在与 Perl 自身相同的条款下重新分发或修改它。请参阅 perlartistic。