我从Mojolicious(mojo/log.t(复制了以下代码块。我正在测试的应用程序确实$app->log->warn('whatever');
.不幸的是,当我作为make test
的一部分运行测试时,STDERR 恰好是空的。当我用prove -lv t/basic.t
运行它时,它成功了。我的程序有什么问题。经过测试的程序的完整源代码在这里谢谢!
my $buffer = '';
{
open my $handle, '>', $buffer;
local *STDERR = $handle;
require Blog;
my $blog = Blog->new;
$blog->startup();
}
like $buffer, qr/"routes" key must point to an ARRAY/,
'right warning about ARRAY reference';
[已编辑]您可能需要将环境变量MOJO_LOG_LEVEL
设置为 warn
。Mojo检查日志记录级别的方式是这样的,$ENV{MOJO_LOG_LEVEL}
(如果使用Test::Mojo,则默认fatal
(优先于应用程序中设置的级别。
我使用Mojolicious的7.59版本来检查这些东西。