在Perl中,“make test”更加冗长

时间:2011-03-15 03:42:46

标签: perl automated-tests cpan

当我使用CPAN模块具有的常规测试工具运行make test时,它只会输出一个简短的摘要(如果一切顺利)。

t/000_basic.t .......................... ok   
t/001_db_handle.t ...................... ok     
t/002_dr_handle.t ...................... ok     
t/003_db_can_connect.t ................. ok   
... snip ...
All tests successful.
Files=30, Tests=606,  2 wallclock secs 
Result: PASS

如果我单独运行测试,它们会输出更详细的信息。

1..7
ok 1 - use DBIx::ProcedureCall::PostgreSQL;
ok 2 - simple call to current_time
ok 3 - call to power() with positional parameters
ok 4 - call to power() using the run() interface
ok 5 - call to setseed with a named parameter
ok 6 - call a table function
ok 7 - call a table function and fetch

如何在此详细模式下运行所有​​测试?我可以将某些内容传递给make test吗?

2 个答案:

答案 0 :(得分:14)

ExtUtils::MakeMaker文档在make test部分解释了这一点:

make test TEST_VERBOSE=1

如果发行版使用Module::Build,则会有所不同:

./Build test verbose=1

您还可以使用prove附带的Test-Harness命令:

prove -bv

(或prove --blib --verbose如果你喜欢长选项。)这个命令有点不同,因为它首先构建模块。 --blib选项使其查找由make./Build创建的已构建但已卸载的模块,但如果您在更改内容后忘记重建模块,则会运行测试反对以前建立的副本。如果您根本没有构建模块,它将测试安装的模块版本。

prove还允许您仅运行特定的测试:

prove -bv t/failing.t

答案 1 :(得分:7)

您还可以使用prove命令:

prove --blib --verbose

来自解压缩模块的顶级目录。 --blib包含已构建但未安装的模块分发所需的目录。