While testing test scripts I noticed that their output is defferent when running directly or under Harness.
I have scripts like this: (called a.t) use strict; use warnings; use Test::More tests => 2; is(2, 2); is(2, 3); and I'd like to test if their output is what I expect. (These are examples for my training) A simple script to test the above is this: (called t.t) use strict; use warnings; use Test::More tests => 1; system "$^X a.t > out 2>&1"; open my $in, '<out' or die; my @lines = <$in>; my @expected = <DATA>; is_deeply(\...@lines, \...@expected); __DATA__ 1..2 ok 1 not ok 2 # Failed test at a.t line 7. # got: '2' # expected: '3' # Looks like you failed 1 test of 2. If I run "perl t.t" I get OK If I run perl -MTest::Harness -e'runtests("t.t")' it fails with # Failed test at t.t line 11. # Structures begin differing at: # $got->[3] = ' # ' # $expected->[3] = '# Failed test at a.t line 7. # ' that is, under Harness there is an extra empty row between the not ok line and the explanation line: # Failed test at a.t line 7. Is this intentional? If not should this be fixed? Gabor