Thanks for your answer, So the second case will be the one to use (without Test::More::UTF8).
But still is very common to need Test::Mojo and Test::More together, as it is stated in the docs. The problem then is that you will not be able to use utf-8 chars on Test::More methods. Of course that is not a problem for english languages, but for others it will be nice to get a workaround over this El lunes, 12 de diciembre de 2016, 13:45:01 (UTC-3), Dan Book escribió: > > This module changes the I/O layers of STDOUT and STDERR to encode to > UTF-8, so it will double encode when using test libraries like Test::Mojo. > You should not use them together. > > On Mon, Dec 12, 2016 at 9:18 AM, Daniel Mantovani <dma...@gmail.com > <javascript:>> wrote: > >> 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 mojolicious...@googlegroups.com <javascript:>. >> To post to this group, send email to mojol...@googlegroups.com >> <javascript:>. >> Visit this group at https://groups.google.com/group/mojolicious. >> For more options, visit https://groups.google.com/d/optout. >> > > -- 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 mojolicious+unsubscr...@googlegroups.com. To post to this group, send email to mojolicious@googlegroups.com. Visit this group at https://groups.google.com/group/mojolicious. For more options, visit https://groups.google.com/d/optout.