私にしては珍しく役に立つ記事を書く予感…
Test::Moreは言わずと知れたperlのテスト環境の必須モジュールな訳ですが、use Test::More;
を使うと日本語を扱うテストではWide character in print~
的な警告がワンサカ出ました。ええ、過去形です。
そこで用いられていたのが次のような4行のおまじない。
my $builder = Test::More->builder;
binmode $builder->output, ":utf8";
binmode $builder->failure_output, ":utf8";
binmode $builder->todo_output, ":utf8";
仕組みはようわからん1が、警告消えるならまぁいっか的な措置でした。ええ、過去形です。
なぜならTest::More::UTF8というズバリなモジュールが(いつの間にか)この世にあるからです!
これからは
use Test::More;
use Test::More::UTF8;
の2行で同じことができます。仕組みはわかりません。
もし貴方がCPAN Authorならば、cpanfile
に
on test => sub {
requires 'Test::More', '1.302';
requires 'Test::More::UTF8', '0.05';
...
}
という記述を突っ込みましょう。インストールの前に依存モジュールとしてTest::More::UTF8
を自動検出してインストールしてくれます。
というわけで、Enjoy!
個人的にはData::Dumper
でもおんなじことできるようにしてくれねぇかなぁ、と思います。
上記の環境下では::note()
としてモジュール内でデバッグしてますけど。