内容

名称

Test::Harness - 使用统计信息运行 Perl 标准测试脚本

版本

版本 3.44

概要

use Test::Harness;

runtests(@test_files);

说明

尽管由于历史原因,Test::Harness 发行版以该模块命名,但它现在仅用于为 TAP::Harness 提供与 Test::Harness 2.xx 具有某种向后兼容性的接口。如果您正在编写新代码,请考虑直接使用 TAP::Harness

runtestsexecute_tests 提供了模拟,但 Test::Harness 的早期版本支持的可插拔“Straps”接口在此处未复制。Straps 现在可用作独立模块:Test::Harness::Straps

有关此发行版的文档,请参阅 TAP::ParserTAP::Harness

函数

可以使用以下函数。

runtests( @test_files )

这将运行所有给定的 @test_files,并根据它们输出到 STDOUT 的内容判断它们是通过还是失败(详细信息见上文)。它将打印出每个未通过的单独测试以及摘要报告和所有测试花费的时间。

如果一切正常,则返回 true。否则,它将使用 DIAGNOSTICS 部分中的一个消息调用 die()

execute_tests( tests => \@test_files, out => \*FH )

运行所有给定的 @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 应为空。

EXPORT

&runtests 默认情况下由 Test::Harness 导出。

&execute_tests$verbose$switches$debug 根据请求导出。

TAP::HARNESS::COMPATIBLE 设置的环境变量

Test::Harness 在执行各个测试之前设置这些变量。

HARNESS_ACTIVE

将其设置为 true 值。它允许测试确定它们是通过测试工具还是通过任何其他方式执行的。

HARNESS_VERSION

这是 Test::Harness 的版本。

影响 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'

Taint 模式

通常,当 Perl 程序在 taint 模式下运行时,PERL5LIB 环境变量的内容不会出现在 @INC 中。

因为 PERL5LIB 通常在测试期间用于将构建目录添加到 @INC 中,所以 Test::Harness 将在 PERL5LIB 中找到的任何目录的名称作为 -I 开关传递。这样做的最终效果是,即使在 taint 模式下,PERL5LIB 也会受到尊重。

另请参阅

TAP::Harness

BUGS

请将任何错误或功能请求报告给 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