测试::BDD::Cucumber::Harness::Html中断UTF-8字符



当我尝试使用test::BDD::Cucumber::Harness::Html在测试名称中打印JSON时,我得到了字符损坏和以下错误消息:

Wide character in print at /home/dragos/perl5/perlbrew/perls/perl-5.26.3/lib/site_perl/5.26.3/Test2/Formatter/TAP.pm line 125
  • 我运行的命令如下:
pherkin -oHtml mockserver > mockTest.html
  • 执行的代码如下:
use Test2::V0;
Then
qr/test utf8 string/,
sub {
my $data =  Mojo::File->new('test.json')->slurp();
$data = Encode::decode('utf8', $data);
is(1, 1, $data);
is $server->get(S->{'url'}),
'Hello stranger.', 'Welcome screen found';
};
  • JSON正文为:
{
"address5": "DUMLUPINAR MAHALLESİ",
}

结果如下:

ok 1 - {
#        "address5": "DUMLUPINAR MAHALLESÄ°",
#      }
#      

pherkin输出utf8编码。用反勾号捕获它并对其进行解码,然后将其写入文件。

use Encode qw(decode encode encode_utf8);
use autodie;

my $filename = 'test.html';
# capture  STDOUT and decode the utf8 chars
# App::pherkin::_pre_run
# and Test::BDD::Cucumber::Executor::_test_output
# both open STDOUT in utf8 mode 
my $output = `pherkin -oHtml mockserver`;
open( my $fh, '>', $filename );
print $fh decode('utf8', $output);

最新更新