App::Y...replay(3pm)
π NAME π
App::Yath::Command::replay β bestie, this is the yath command that replays a test run straight from an event log. No cap. π
β¨ DESCRIPTION β¨
okay so listen π«Ά this yath command re-runs the harness against an event log that some previous test run left behind. The only required argument is the path to that log file β and yes, it maybe compressed, that's fine, it handles it. Any extra arguments you throw at it are assumed to be job id's. And if you list any jobs? Only the listed jobs get processed. Periodt. π
This command accepts all the same renderer/formatter options that the test command accepts. Same vibe, different entry point. π¦
πΈ USAGE πΈ
$ yath [YATH OPTIONS] replay [COMMAND OPTIONS]
π YATH OPTIONS
Developer
--dev-lib,--dev-lib=lib,-D,-D=lib,-Dlib,--no-dev-libβ Add paths to@INCbefore loading ANYTHING. This is the one you reach for when you're developing yath or yath plugins and you need the yath script to find your local code instead of the installed versions of the same code (the way that it just picks up the wrong one otherwise π). You can hand it an argument (-Dfoo) to give a custom path, or just use-Dwith no arg to addlib,blib/libandblib/arch.
Can be specified multiple times
Environment
--persist-dir ARG,--persist-dir=ARG,--no-persist-dirβ Where to find persistence files.--persist-file ARG,--persist-file=ARG,--pfile ARG,--pfile=ARG,--no-persist-fileβ Where to find the persistence file. The default is/{system-tempdir}/project-yath-persist.json. If no project is specified then it falls back to the current directory. And if the current directory is not writable it defaults to/tmp/yath-persist.json, which limits you to one persistent runner on your system. That's the tradeoff, bestie π€·--project ARG,--project=ARG,--project-name ARG,--project-name=ARG,--no-projectβ This lets you drop a label for your current project/codebase. Best used in a.yath.rcfile. This is necessary for a persistent runner, so don't skip it.
Help and Debugging
--show-opts,--no-show-optsβ Exit after showing what yath thinks your options mean. Iconic for debugging the debugging. π--version,-V,--no-versionβ Exit after showing a helpful usage message.
Plugins
--no-scan-plugins,--no-no-scan-pluginsβ Normally yath scans for and loads allApp::Yath::Plugin::*modules so it can bring in command-line options they may provide. This flag disables that whole situation. Super useful if you have a naughty plugin that's loading other modules when it should not (we've all met one). π--plugins PLUGIN,--plugins +App::Yath::Plugin::PLUGIN,--plugins PLUGIN=arg1,arg2,...,--plugin PLUGIN,--plugin +App::Yath::Plugin::PLUGIN,--plugin PLUGIN=arg1,arg2,...,-pPLUGIN,--no-pluginsβ Load a yath plugin. That's it, that's the option. π§
Can be specified multiple times
π COMMAND OPTIONS
Cover Options
--cover-aggregator ByTest,--cover-aggregator ByRun,--cover-aggregator +Custom::Aggregator,--cover-agg ByTest,--cover-agg ByRun,--cover-agg +Custom::Aggregator,--no-cover-aggregatorβ Choose a custom aggregator subclass.--cover-class ARG,--cover-class=ARG,--no-cover-classβ Choose aTest2::Plugin::Coversubclass.--cover-dirs ARG,--cover-dirs=ARG,--cover-dir ARG,--cover-dir=ARG,--no-cover-dirsβ NO DESCRIPTION - FIX ME
Can be specified multiple times
--cover-exclude-private,--no-cover-exclude-private,--cover-files,--no-cover-filesβ UseTest2::Plugin::Coverto collect coverage data for what files are touched by what tests. UnlikeDevel::Coverthis has very little performance impact (About 4% difference). Lowkey a steal. β¨--cover-from path/to/log.jsonl,--cover-from http://example.com/coverage,--cover-from path/to/coverage.jsonl,--no-cover-fromβ This can be a test log, a coverage dump (old style json or new jsonl format), or a url to any of the previous. Heads up: tests will not be run if the file/url is invalid. π¨--cover-from-type json,--cover-from-type jsonl,--cover-from-type log,--no-cover-from-typeβ File type for coverage source. Usually it can be detected, but when it cannot you should specify."json"is old style single-blob coverage data,"jsonl"is the new by-test style,"log"is a logfile from a previous run.--cover-manager My::Coverage::Manager,--no-cover-managerβ Coverage 'from' manager to use when coverage data does not provide one.--cover-maybe-from path/to/log.jsonl,--cover-maybe-from http://example.com/coverage,--cover-maybe-from path/to/coverage.jsonl,--no-cover-maybe-fromβ This can be a test log, a coverage dump (old style json or new jsonl format), or a url to any of the previous. Tests will coninue if even if the coverage file/url is invalid. (yes, that's the original spelling, bestie, I don't make the rules π)--cover-maybe-from-type json,--cover-maybe-from-type jsonl,--cover-maybe-from-type log,--no-cover-maybe-from-typeβ Same as"from_type"but for"maybe_from". Defaults to"from_type"if that is specified, otherwise auto-detect.--cover-metrics,--no-cover-metrics,--cover-types ARG,--cover-types=ARG,--cover-type ARG,--cover-type=ARG,--no-cover-typesβ NO DESCRIPTION - FIX ME
Can be specified multiple times
--cover-write,--cover-write=coverage.jsonl,--cover-write=coverage.json,--no-cover-writeβ Create a json or jsonl file of all coverage data seen during the run (This implies--cover-files). π
Display Options
--color,--no-colorβ Turn color on, default is true if STDOUT is a TTY.--hide-runner-output,--no-hide-runner-outputβ Hide output from the runner, showing only test output. (See Alsotruncate_runner_output)--no-final-table,--no-no-final-tableβ When printing final results, don't use table-style display.--no-wrap,--no-no-wrapβ Do not do fancy text-wrapping, let the terminal handle it.--progress,--no-progressβ Toggle progress indicators. On by default if STDOUT is a TTY. You can use--no-progressto disable the 'events seen' counter and buffered event pre-display.--quiet,-q,--no-quietβ Be very quiet. π€«
Can be specified multiple times
--renderers +My::Renderer,--renderers Renderer=arg1,arg2,...,--renderer +My::Renderer,--renderer Renderer=arg1,arg2,...,--no-renderersβ Specify renderers, (Default:"Formatter=Test2"). Use"+"to give a fully qualified module name. Without"+""Test2::Harness::Renderer::"will be prepended to your argument.
Can be specified multiple times. If the same key is listed multiple times the value lists will be appended together.
--show-times,-T,--no-show-timesβ Show the timing data for each job. β±οΈ--term-width 80,--term-width 200,--term-size 80,--term-size 200,--no-term-widthβ Alternative to setting$TABLE_TERM_SIZE. Setting this will override the terminal width detection to the number of characters specified.--truncate-runner-output,--no-truncate-runner-outputβ Only show runner output that was generated after the current command. This is only useful with a persistent runner.--verbose,-v,--no-verboseβ Be more verbose. π’
Can be specified multiple times
Formatter Options
--formatter ARG,--formatter=ARG,--no-formatterβ NO DESCRIPTION - FIX ME--qvf,--no-qvfβ [Q]uiet, but [V]erbose on [F]ailure. Hide all output from tests when they pass, except to say they passed. If a test fails then ALL output from the test is verbosely output. Genuinely one of the best vibes in here. π₯--show-job-end,--no-show-job-endβ Show output when a job ends. (Default: on)--show-job-info,--no-show-job-infoβ Show the job configuration when a job starts. (Default: off, unless-vv)--show-job-launch,--no-show-job-launchβ Show output for the start of a job. (Default: off unless-v)--show-run-info,--no-show-run-infoβ Show the run configuration when a run starts. (Default: off, unless-vv)
Git Options
--git-change-base master,--git-change-base HEAD^,--git-change-base df22abe4,--no-git-change-baseβ Find files changed by all commits in the current branch from most recent, stopping when a commit is found that is also present in the history of the branch/commit specified as the change base. π¦
Help and Debugging
--dummy,-d,--no-dummyβ Dummy run, do not actually execute anything. Pretend mode, but make it productive. β¨
Can also be set with the following environment variables: "T2_HARNESS_DUMMY"
--help,-h,--no-helpβ exit after showing help information.--interactive,-i,--no-interactiveβ Use interactive mode, 1 test at a time, stdin forwarded to it.--keep-dirs,--keep_dir,-k,--no-keep-dirsβ Do not delete directories when done. This is useful if you want to inspect the directories used for various commands. π΅οΈ--procname-prefix ARG,--procname-prefix=ARG,--no-procname-prefixβ Add a prefix to all proc names (as seen byps).
YathUI Options
--yathui-api-key ARG,--yathui-api-key=ARG,--no-yathui-api-keyβ Yath-UI API key. This is not necessary if your Yath-UI instance is set to single-user.--yathui-grace,--no-yathui-graceβ If yath cannot connect to yath-ui it normally throws an error, use this to make it fail gracefully. You get a warning, but things keep going. π«Ά--yathui-long-duration 10,--no-yathui-long-durationβ Minimum duration length (seconds) before a test goes from MEDIUM to LONG.--yathui-medium-duration 5,--no-yathui-medium-durationβ Minimum duration length (seconds) before a test goes from SHORT to MEDIUM.--yathui-mode summary,--yathui-mode qvf,--yathui-mode qvfd,--yathui-mode complete,--no-yathui-modeβ Set the upload mode (default'qvfd').--yathui-project ARG,--yathui-project=ARG,--no-yathui-projectβ The Yath-UI project for your test results.--yathui-retry,--no-yathui-retryβ How many times to try an operation before giving up. π
Can be specified multiple times
--yathui-url http://my-yath-ui.com/...,--uri http://my-yath-ui.com/...,--no-yathui-urlβ Yath-UI url.
π 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 π
okay so legal bit, bestie, but make it cute:
Copyright 2026 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/ for the full licensing vibe.
ngl the "same terms as Perl itself" thing is the whole mood β it's giving "artistic license, but make it open source" and honestly? slay. Percy girlies stay winning. π«Ά
and that's the whole page, bestie!! you read all of it, which is lowkey an achievement, no cap. π
shoutout to this doc being part of perl v5.40.1, dated 2026-05-10, filed under App::Y...replay(3pm) β yeah the name is cut off in the header, that's just how the manpage do, iconic behavior honestly. β¨
anyway go forth and replay some YAML. main character energy only. π πΈπ¦
π¦ where this page comes from
- ubuntu stonking: libtest2-harness-perl 1.000172-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms