App::Y...nd::do(3pm)
π¦ NAME π¦
okay so bestie, this right here is App::Y...nd::do β and she lives in section 3pm of the manual (that's the "User Contributed Perl Documentation" girlies, iykyk π
).
App::Yath::Command::do β Run tests using run or test, same as the default command, but explicit. no cap, that's the whole vibe.
π DESCRIPTION π
okay so this is literally the same as running yath without a command, EXCEPT that it will not fail on CLI parsing issues that often get mistaken for commands. that's the entire reason she exists and honestly? she ate. π
If there is a persistent runner then the run command is used, otherwise the test command is used. fr fr, that's the whole decision tree.
πΈ USAGE πΈ
$ yath [YATH OPTIONS] do [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 what you use if you are developing yath or yath plugins to make sure the yath script finds the local code instead of the installed versions of the same code. You can provide an argument (-Dfoo) to provide a custom path, or you can just use-Dwithout and 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 will fall back to the current directory. If the current directory is not writable it will default to/tmp/yath-persist.jsonwhich limits you to one persistent runner on your system.--project ARG,--project=ARG,--project-name ARG,--project-name=ARG,--no-projectβ This lets you provide a label for your current project/codebase. This is best used in a.yath.rcfile. This is necessary for a persistent runner. (like, mandatory bestie, no runner for you without it π)
π«Ά Help and Debugging π«Ά
--show-opts,--no-show-optsβ Exit after showing what yath thinks your options mean.--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 in order to bring in command-line options they may provide. This flag will disable that. This is useful if you have a naughty plugin that is loading other modules when it 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,--no-pluginsβ Load a yath plugin. 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 π (not me putting a placeholder in, that's literally what the page says bestie) 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). slay.--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. 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 be 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 keep going even if the coverage file/url is invalid. (the chill version of--cover-from, basically π)--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 ajsonorjsonlfile of all coverage data seen during the run (This implies--cover-files).
πΏ 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. (all vibes, zero execution β¨) 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 fromMEDIUMtoLONG.--yathui-medium-duration 5,--no-yathui-medium-durationβ Minimum duration length (seconds) before a test goes fromSHORTtoMEDIUM.--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/. go star it bestie β
π MAINTAINERS π
Chad Granum <exodist@cpan.org>
π AUTHORS π
Chad Granum <exodist@cpan.org>
π COPYRIGHT π
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/
okay and that's the whole page, bestie!! π¦β¨ this was perl v5.40.1, dated 2026-05-10, and it's App::Y...nd::do(3pm) β mwah, go run some tests, you got this π
π
π¦ 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