App::Y...runner(3pm)

πŸ’– App::Y...runner β€” bestie edition πŸ’–

okay so this is App::Yath::Command::runner from the User Contributed Perl Documentation, and it's for internal use only β€” like, we're in the backstage area of the group chat here, not the main room ✨


🌸 NAME 🌸

App::Yath::Command::runner β€” for internal use only. that's it. that's the whole name section. she's private, she's exclusive, she's not taking new applications πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

No Description. literally nothing. an empty vibe. the manpage said "No Description" and honestly? respect for the honesty 😭


✨ USAGE ✨

here's how you'd call her:

$ yath [YATH OPTIONS] runner [COMMAND OPTIONS]

πŸ‘‘ YATH OPTIONS πŸ‘‘

🧚 Developer

  • --dev-lib, --dev-lib=lib, -D, -D=lib, -Dlib β€” okay so this one adds paths to @INC before loading ANYTHING. like, before anything else gets to load. this is your girl if 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 exact same code. you can hand it an argument (-Dfoo) for a custom path, or you can just rawdog it as -D with no arg and it'll add lib, blib/lib and blib/arch 🫢
  • --no-dev-lib β€” the opposite of all that (same bullet family, listed right there in the original, so here she is) πŸ’œ
can be specified multiple times, so go off, stack them, she can handle it ⭐

🌈 Environment

  • --persist-dir ARG, --persist-dir=ARG β€” where to find persistence files.
  • --no-persist-dir β€” the negation, as the name promises πŸ™ˆ
  • --persist-file ARG, --persist-file=ARG, --pfile ARG, --pfile=ARG β€” where to find the persistence file. default is /{system-tempdir}/project-yath-persist.json. if no project is specified 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 😭
  • --no-persist-file β€” negate it, slay.
  • --project ARG, --project=ARG, --project-name ARG, --project-name=ARG β€” this gives you a label for your current project/codebase. best used in a .yath.rc file. it's necessary for a persistent runner, no cap πŸŽ€
  • --no-project β€” the off switch.

πŸ”₯ Help and Debugging

  • --show-opts β€” exit after showing what yath thinks your options mean. like a vibe check on your own flags πŸ‘‘
  • --no-show-opts β€” don't do that.
  • --version, -V β€” exit after showing a helpful usage message.
  • --no-version β€” the negation, bestie.

πŸ“ Plugins

  • --no-scan-plugins, --no-no-scan-plugins β€” normally yath scans for and loads all App::Yath::Plugin::* modules so it can bring in whatever command-line options they provide. this flag disables that whole operation. useful when you have a naughty plugin loading other modules when it absolutely should not 🧚
  • --plugins PLUGIN, --plugins +App::Yath::Plugin::PLUGIN, --plugins PLUGIN=arg1,arg2,..., --plugin PLUGIN, --plugin +App::Yath::Plugin::PLUGIN, --plugin PLUGIN=arg1,arg2,..., -pPLUGIN β€” load a yath plugin. yes queen πŸ’…
  • --no-plugins β€” no plugins for you.
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 β€” choose a custom aggregator subclass ✨
  • --no-cover-aggregator β€” the off switch for the aggregator.
  • --cover-class ARG, --cover-class=ARG β€” choose a Test2::Plugin::Cover subclass.
  • --no-cover-class β€” the negation, obviously.
  • --cover-dirs ARG, --cover-dirs=ARG, --cover-dir ARG, --cover-dir=ARG β€” NO DESCRIPTION - FIX ME 😭 the manpage really said "figure it out"
  • --no-cover-dirs β€” the off switch.
can be specified multiple times 🫢
  • --cover-exclude-private β€” self-explanatory-ish, it's right there in the name, love that for us.
  • --no-cover-exclude-private β€” un-exclude the private stuff.
  • --cover-files β€” use Test2::Plugin::Cover to collect coverage data for what files are touched by what tests. unlike Devel::Cover this has very little performance impact (about 4% difference, which is honestly nothing) πŸ”₯
  • --no-cover-files β€” the off switch.
  • --cover-from path/to/log.jsonl, --cover-from http://example.com/coverage, --cover-from path/to/coverage.jsonl β€” 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 not be run if the file/url is invalid πŸ’€
  • --no-cover-from β€” the negation.
  • --cover-from-type json, --cover-from-type jsonl, --cover-from-type log β€” file type for the coverage source. usually it can be detected on its own, 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 🌸
  • --no-cover-from-type β€” off switch, you know the drill.
  • --cover-manager My::Coverage::Manager β€” coverage 'from' manager to use when coverage data does not provide one.
  • --no-cover-manager β€” negated.
  • --cover-maybe-from path/to/log.jsonl, --cover-maybe-from http://example.com/coverage, --cover-maybe-from path/to/coverage.jsonl β€” same deal as --cover-from, it can be a test log, a coverage dump (old style json or new jsonl format), or a url to any of the previous. but tests will continue even if the coverage file/url is invalid β€” hence the "maybe", she's forgiving πŸ’–
  • --no-cover-maybe-from β€” the negation.
  • --cover-maybe-from-type json, --cover-maybe-from-type jsonl, --cover-maybe-from-type log β€” same as "from_type" but for "maybe_from". defaults to "from_type" if that is specified, otherwise auto-detect πŸ¦‹
  • --no-cover-maybe-from-type β€” the off switch.
  • --cover-metrics β€” yes. it exists. the original didn't say more, so neither will I πŸ™ˆ
  • --no-cover-metrics β€” the negation.
  • --cover-types ARG, --cover-types=ARG, --cover-type ARG, --cover-type=ARG β€” NO DESCRIPTION - FIX ME 😭
  • --no-cover-types β€” off switch.
  • --cover-write, --cover-write=coverage.jsonl, --cover-write=coverage.json β€” create a json or jsonl file of all coverage data seen during the run. (this implies --cover-files) β€” so it's a package deal, iykyk πŸ‘‘
  • --no-cover-write β€” the negation.

🌈 Git Options

  • --git-change-base master, --git-change-base HEAD^, --git-change-base df22abe4 β€” find files changed by all commits in the current branch, starting from most recent and stopping when a commit is found that is also present in the history of the branch/commit specified as the change base. it's giving archaeology but for your git history ✨
  • --no-git-change-base β€” the off switch.

⭐ Help and Debugging

  • --dummy, -d β€” dummy run, do not actually execute anything. she's a rehearsal, not the show πŸ’…
  • --no-dummy β€” turn it off.
can also be set with the following environment variables: "T2_HARNESS_DUMMY" πŸ’–
  • --help, -h β€” exit after showing help information.
  • --no-help β€” no help for you, bestie.
  • --interactive, -i β€” use interactive mode, 1 test at a time, stdin forwarded to it 🫢
  • --no-interactive β€” the negation.
  • --keep-dirs, --keep_dir, -k β€” do not delete directories when done. useful if you want to inspect the directories used for various commands πŸ‘€
  • --no-keep-dirs β€” delete them like normal.
  • --procname-prefix ARG, --procname-prefix=ARG β€” add a prefix to all proc names (as seen by ps).
  • --no-procname-prefix β€” the off switch.

πŸ“ YathUI Options

  • --yathui-api-key ARG, --yathui-api-key=ARG β€” Yath-UI API key. not necessary if your Yath-UI instance is set to single-user πŸ”‘
  • --no-yathui-api-key β€” the negation.
  • --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 β€” she's chill like that πŸ’œ
  • --no-yathui-grace β€” let it throw, drama queen.
  • --yathui-long-duration 10 β€” minimum duration length (seconds) before a test goes from MEDIUM to LONG ⏳
  • --no-yathui-long-duration β€” the off switch.
  • --yathui-medium-duration 5 β€” minimum duration length (seconds) before a test goes from SHORT to MEDIUM 🌸
  • --no-yathui-medium-duration β€” the off switch.
  • --yathui-mode summary, --yathui-mode qvf, --yathui-mode qvfd, --yathui-mode complete β€” set the upload mode (default 'qvfd') ✨
  • --no-yathui-mode β€” off.
  • --yathui-project ARG, --yathui-project=ARG β€” the Yath-UI project for your test results πŸŽ€
  • --no-yathui-project β€” the negation.
  • --yathui-retry β€” how many times to try an operation before giving up. she's persistent, periodt πŸ’…
  • --no-yathui-retry β€” give up immediately, honestly valid.
can be specified multiple times 🫢

🌟 SOURCE 🌟

The source code repository for Test2-Harness can be found at http://github.com/Test-More/Test2-Harness/ β€” go look, go star it, go lurk πŸ‘‘


πŸ’œ MAINTAINERS πŸ’œ

  • Chad Granum <exodist@cpan.org>

πŸ¦‹ AUTHORS πŸ¦‹

  • Chad Granum <exodist@cpan.org>

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/


and that's the whole page, bestie πŸ’– this was perl v5.40.1, dated 2026-05-10, filed under App::Y...runner(3pm) in the User Contributed Perl Documentation. go forth and run responsibly ✨🫢🌸

πŸ“¦ where this page comes from