Test::Classy 0.07

tokuhiromさんが嘆いておられたので日本語対応してみました。utf8プラグマの有無でどうするかを決めるというかなり横着な実装ですが、こんな感じのテストモジュール(t/lib/MyApp/Test/Basic.pm)を書いて、

package MyApp::Test::Basic;
use strict;
use warnings;
use utf8;
use Test::Classy::Base;

sub 日本語 : Test {
  my $class = shift;

  ok 1, $class->message('日本語も通るようになったよ');
}

1;

こんなテスト(t/test.t)を用意すると、

use strict;
use warnings;
use lib 't/lib';
use Test::Classy;
load_tests_from 'MyApp::Test';
run_tests;

ターミナルにあわせた文字コードでテスト名やらメッセージやらが表示されるようになる、と。

テストメッセージについては、$class->messageのなかでTerm::Encodingを利用したエンコードを行っているので、これを使わない場合はtokuhiromさんの記事にあるようにbinmode通すなりなんなりしてくださいませ。