为什么这个 perl 测试中的 *STDERR 是空的?
Why *STDERR in this perl test is empty?
我从 Mojolicious (mojo/log.t) 复制了以下代码块。
我正在测试的应用程序确实 $app->log->warn('whatever');
。
不幸的是,当我 运行 作为 make test
的一部分进行测试时,STDERR 恰好是空的。当我 运行 它与 prove -lv t/basic.t
它成功。我的程序有什么问题。测试程序的完整源代码是 here
谢谢!
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 版来检查这些东西。
我从 Mojolicious (mojo/log.t) 复制了以下代码块。
我正在测试的应用程序确实 $app->log->warn('whatever');
。
不幸的是,当我 运行 作为 make test
的一部分进行测试时,STDERR 恰好是空的。当我 运行 它与 prove -lv t/basic.t
它成功。我的程序有什么问题。测试程序的完整源代码是 here
谢谢!
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 版来检查这些东西。