gpt4 book ai didi

Perl Prove TAP::Harness color (color) 输出 windows (win32)

转载 作者:行者123 更新时间:2023-12-05 01:07:43 25 4
gpt4 key购买 nike

我正在尝试在 Windows 7 上使用带有事件状态 Perl 的证明/TAP::Harness 获取颜色(颜色)输出。

实际测试运行良好,只是没有颜色输出。

我在使用 Strawberry Perl 和 WinXP 时遇到了类似的问题。

我无法使用 *nix 和 cygwin 或其他第三方 xterm 两者都可以
为输出着色。

我知道它有点挑剔,但我想我已经对“绿色”上瘾了:-)

有简单的解决方法吗? - 在激活状态网站上看不到任何东西 - 我正在考虑提出一个错误。
有关调试或检查什么的任何指导?

是否值得编写我自己的格式化程序?

在此先感谢您的帮助。

有关已安装模块和尝试的方法的更多详细信息...

这些已安装并且据我所知正在工作

   Win32::Console::ANSI;
Term::ANSIColor;

该测试脚本有效:
   #!/usr/bin/perl
use strict;
use warnings;
use Win32::Console::ANSI;
use Term::ANSIColor;

print "One fish\n";
print "Two fish\n";
print color("red"), "Red Fish\n", color("reset");
print color("blue"), "Blue Fish\n", color("reset");

我试过了:
prove
prove -c

并使用以下带有和不带有格式化程序的测试工具程序,但是
我假设默认情况下颜色是打开的。
#!/usr/bin/perl
use strict;
use warnings;
use TAP::Harness;

my @tests = glob( 't/*.t' );
my $harness = TAP::Harness->new();
$harness->runtests( @tests );

我还安装了 HTML 格式化程序,它似乎正在工作。
 prove  --formatter=TAP::Formatter::HTML

运行:
prove  --formatter=TAP::Formatter::Color


无法通过 x:/Perl/site/lib/TAP/Harness.pm 第 679 行的包“TAP::Formatter::Color”找到对象方法“verbosity”。

谢谢
麦克风

最佳答案

它似乎是 TAP::Formatter::Color 中的 bug1。它附加到控制台的 STDOUT 句柄,但应该着色的消息在 STDERR 上。

这:

my $console = Win32::Console->new( STD_OUTPUT_HANDLE() );

应该是这样的:
my $console = Win32::Console->new( STD_ERROR_HANDLE() );

此外,不管文档怎么说, --color不是 Windows 上的默认设置。 App::Prove (这是“证明”可执行文件背后的内容)显式将 Windows 的默认设置为 false:
sub _color_default {
my $self = shift;
return -t STDOUT && !$ENV{HARNESS_NOTTY} && !IS_WIN32;
}

1. 修复 Test::Harness v3.41 中的BUG

关于Perl Prove TAP::Harness color (color) 输出 windows (win32),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18249108/

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