Perl Prove TAP :: Windows的线束颜色(颜色)输出(win32)
我试图在
Windows 7上使用带有活动状态Perl的prove / TAP :: Harness获得颜色(颜色)输出.
实际测试运行良好,只是没有颜色输出. 使用Strawberry Perl和WinXP我遇到了类似的问题. 我无法使用* nix和cygwin或其他第三方xterm 我知道这有点挑剔,但我想我已经沉迷于“绿色”:-) 有一个简单的解决方案吗? – 在Activate状态站点上看不到任何内容 – 我正在考虑提出错误. 是否值得编写自己的格式化程序? 在此先感谢您的帮助. 尝试安装模块和方法的更多细节…… 这些都是根据我的知识安装的 Win32::Console::ANSI; Term::ANSIColor; 此测试脚本有效: #!/usr/bin/perl use strict; use warnings; use Win32::Console::ANSI; use Term::ANSIColor; print "One fishn"; print "Two fishn"; print color("red"),"Red Fishn",color("reset"); print color("blue"),"Blue Fishn",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 给 谢谢 解决方法
它似乎是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; } 这个bug在Test::Harness v3.41修复了 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |