加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl Prove TAP :: Windows的线束颜色(颜色)输出(win32)

发布时间:2020-12-16 06:17:45 所属栏目:大数据 来源:网络整理
导读:我试图在 Windows 7上使用带有活动状态Perl的prove / TAP :: Harness获得颜色(颜色)输出. 实际测试运行良好,只是没有颜色输出. 使用Strawberry Perl和WinXP我遇到了类似的问题. 我无法使用* nix和cygwin或其他第三方xterm 为输出着色. 我知道这有点挑剔,但我
我试图在 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


无法在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;
}

这个bug在Test::Harness v3.41修复了

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读