---
name: "App::Yath::Converting"
section: "3pm"
platform: "linux"
package: "libtest2-harness-perl"
version: "1.000158-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/App::Yath::Converting"
---

# App::Yath::Converting(3pm)

Things you may need to change in your tests before you can use yath.

## NAME

App::Yath::Converting - Things you may need to change in your tests before you can use yath.

## NON-TAP FORMATTER

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.

### SOLUTIONS

*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.

## TESTS ARE RUN VIA FORK BY DEFAULT

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.

### SOLUTIONS

*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.

## SOURCE

The source code repository for Test2-Harness can be found at *http://github.com/Test-More/Test2-Harness/*.

## MAINTAINERS

- Chad Granum \<exodist@cpan.org\>

  ## AUTHORS

- Chad Granum \<exodist@cpan.org\>

  ## COPYRIGHT

Copyright 2020 Chad Granum \<exodist7@gmail.com\>.

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/*
