When testing Mojo apps, many times you need to use both Test::Mojo and
Test::More. In those cases, I found difficult to print utf8 coded strings
as test messages.
See this example:
$ cat with_More-UTF8.t
use Test::More tests => 3;
use utf8;
use Test::More::UTF8;
use Test::Mojo;
use Mojolicious::Lite;
get '/' => sub {shift->render(text => '')};
app->start;
my $t = Test::Mojo->new();
$t->get_ok('/')
->status_is(200, 'Test::Mojo dice: ¡Buenos días!');
is 1,1,'Test::More responde: ¡Buenos días!';
Then if I run the test, it passes, but take a look on the message from
Test::Mojo:
$ prove -v with_More-UTF8.t
with_More-UTF8.t ..
1..3
[Mon Dec 12 10:49:34 2016] [debug] GET "/"
[Mon Dec 12 10:49:34 2016] [debug] Routing to a callback
[Mon Dec 12 10:49:34 2016] [debug] 200 OK (0.000515s, 1941.748/s)
ok 1 - GET /
ok 2 - Test::Mojo dice: ¡Buenos dÃas!
ok 3 - Test::More responde: ¡Buenos días!
ok
All tests successful.
Files=1, Tests=3, 0 wallclock secs ( 0.01 usr 0.01 sys + 0.22 cusr 0.01
csys = 0.25 CPU)
Result: PASS
Now if I comment out the Test::More::UTF8 module,
$ cat without_More-UTF8.t
use Test::More tests => 3;
use utf8;
#use Test::More::UTF8;
use Test::Mojo;
use Mojolicious::Lite;
get '/' => sub {shift->render(text => '')};
app->start;
my $t = Test::Mojo->new();
$t->get_ok('/')
->status_is(200, 'Test::Mojo dice: ¡Buenos días!');
is 1,1,'Test::More responde: ¡Buenos días!';
Now if I run this test, it also passes, but the problem now is in
Test::More part (this is actually normal behavior for Test::More module,
because it doesn't support utf8 without including Test::More::UTF8)
$ prove -v without_More-UTF8.t
without_More-UTF8.t ..
1..3
[Mon Dec 12 10:50:12 2016] [debug] GET "/"
[Mon Dec 12 10:50:12 2016] [debug] Routing to a callback
[Mon Dec 12 10:50:12 2016] [debug] 200 OK (0.000503s, 1988.072/s)
ok 1 - GET /
ok 2 - Test::Mojo dice: ¡Buenos días!
ok 3 - Test::More responde: �Buenos d�as!
ok
All tests successful.
Files=1, Tests=3, 0 wallclock secs ( 0.02 usr 0.00 sys + 0.23 cusr 0.00
csys = 0.25 CPU)
Result: PASS
$
It seems like if using Test::More::UTF8 breaks something internally in
Test::Mojo
Do you know of any workaround this problem?
Thanks,
Daniel
--
You received this message because you are subscribed to the Google Groups
"Mojolicious" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/mojolicious.
For more options, visit https://groups.google.com/d/optout.