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



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

相关内容

  • 没有找到相关文章

最新更新