在Perl中,"make test"更加冗长

Thi*_*ilo 9 perl automated-tests cpan

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

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
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

如何在这种详细模式下运行所有​​测试?有什么东西可以传递给我make test吗?

cjm*_*cjm 14

参考ExtUtils :: MakeMaker的文档在解释这种化妆测试部分:

make test TEST_VERBOSE=1
Run Code Online (Sandbox Code Playgroud)

如果发行版使用Module :: Build,那就有点不同了:

./Build test verbose=1
Run Code Online (Sandbox Code Playgroud)

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

prove -bv
Run Code Online (Sandbox Code Playgroud)

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

证明还允许您只运行特定的测试或测试:

prove -bv t/failing.t
Run Code Online (Sandbox Code Playgroud)


yst*_*sth 7

您还可以使用以下prove命令:

prove --blib --verbose
Run Code Online (Sandbox Code Playgroud)

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