gpt4 book ai didi

perl - 为什么这个 perl 测试中的 *STDERR 是空的?

转载 作者:行者123 更新时间:2023-11-28 20:07:57 26 4
gpt4 key购买 nike

我从 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 版来检查这些东西。

关于perl - 为什么这个 perl 测试中的 *STDERR 是空的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49296198/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com