App::Yath::Converting - Things you may need to change in your tests before you
can use yath.
By default yath tells any Test2 or Test::Builder tests to use
Test2::Formatter::Stream instead of Test2::Formatter::TAP. This is done in
order to make sure as much data as possible makes it to yath, TAP is a lossy
formater by comparison.
This is not normally a problem, but tests that do strange things with
STDERR/STDOUT, or try to intercept output from the regular TAP formatter can
have issues with this.
HARNESS-NO-STREAM
You can add a harness directive to the top of offending tests that tell the
harness those specific tests should still use the TAP formatter.
#!/usr/bin/perl
# HARNESS-NO-STREAM
...
This directive can come after the "#!" line, and after use statements,
but must come BEFORE any empty lines or runtime statements.
--no-stream
You can run yath with the "--no-stream" option, which will have tests
default to TAP. This is not recommended as TAP is lossy.
The default mode for yath is to preload a few things, then fork to spawn each
test. This is a complicated procedure, and it uses goto::file under the hood.
Sometimes you have tests that simply will not work this way, or tests that
verify specific libraries are not already loaded.
HARNESS-NO-PRELOAD
You can use this harness directive inside your tests to tell yath not to fork,
but to instead launch a new perl process to run the test.
#!/usr/bin/perl
# HARNESS-NO-PRELOAD
...
--no-fork
--no-preload
Both these options tell yath not to preload+fork, but to run ALL tests in new
processes. This is slow, it is better to mark specific tests that have issues
in preload mode.
The source code repository for Test2-Harness can be found at
http://github.com/Test-More/Test2-Harness/.
- Chad Granum <[email protected]>
- Chad Granum <[email protected]>
Copyright 2020 Chad Granum <
[email protected]>.
This program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
See
http://dev.perl.org/licenses/