App::Y...::watch(3pm)
π NAME π
App::Yath::Command::watch β bestie, this is the command that monitors your persistent test runner. She's nosy in the best way possible π
β¨ DESCRIPTION β¨
Okay so real talk: this command will tail the logs from a persistent instance of yath. It's basically giving surveillance energy but for your test suite π
Here's the tea though β STDOUT and STDERR will be printed as seen, which means the output may not be in proper order. That's just the vibe, no cap. Things will come at you as they happen, not necessarily in the neat little sequence you'd expect. π
π¦ USAGE π¦
$ yath [YATH OPTIONS] watch [COMMAND OPTIONS]
π YATH OPTIONS π
Developer
--dev-lib,--dev-lib=lib,-D,-D=lib,-Dlib,--no-dev-libβ bestie, this adds paths to@INCbefore loading ANYTHING. It's the move 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 (so not the impostor version π). You can hand it an argument (-Dfoo) for a custom path, OR you can just use-Dwith no arg and it'll addlib,blib/libandblib/archfor you. So generous.
Can be specified multiple times
Environment
--persist-dir ARG,--persist-dir=ARG,--no-persist-dirβ where to find the persistence files. That's it, that's the whole job. π--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. And if the current directory is not writable it will default to/tmp/yath-persist.jsonβ which lowkey limits you to one persistent runner on your whole system π keep that in mind bestie.--project ARG,--project=ARG,--project-name ARG,--project-name=ARG,--no-projectβ this lets you put a label on your current project/codebase. Best used in a.yath.rcfile, and honestly it's necessary for a persistent runner. No label, no persistent runner, periodt.
Help and Debugging
--show-opts,--no-show-optsβ exits after showing you what yath thinks your options mean. Iconic for when you and yath are not on the same page. π--version,-V,--no-versionβ exits after showing a helpful usage message. Slay.
Plugins
--no-scan-plugins,--no-no-scan-pluginsβ normally yath scans for and loads allApp::Yath::Plugin::*modules so it can bring in whatever command-line options they might provide. This flag disables that whole operation. Super useful if you have a naughty plugin that's loading other modules when it should not be π we've all got 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β loads a yath plugin. Go off. π
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. You're the aggregator now β¨--cover-class ARG,--cover-class=ARG,--no-cover-classβ choose aTest2::Plugin::Coversubclass. Pick your fighter.--cover-dirs ARG,--cover-dirs=ARG,--cover-dir ARG,--cover-dir=ARG,--no-cover-dirsβ NO DESCRIPTION - FIX ME. Yeah bestie, that's genuinely what the docs say, I'm not hiding anything from you π«Ά
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. And get this β unlikeDevel::Coverthis has very little performance impact (About 4% difference). Basically free coverage, we love a bargain π--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β the file type for the coverage source. Usually it can be detected automatically, but when it cannot you should specify. To break it down:"json"is old style single-blob coverage data,"jsonl"is the new by-test style,"log"is a logfile from a previous run. iykyk.--cover-manager My::Coverage::Manager,--no-cover-managerβ the coverage 'from' manager to use when the coverage data doesn't provide one. You're managing the manager π--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. The vibe difference: Tests will coninue if even if the coverage file/url is invalid. So chill. So low-stakes. π--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. Again! The docs left us on read, bestie, nothing I can do π«Ά
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. And psst β (This implies--cover-files). Two for one, slay. π₯
Git Options
--git-change-base master,--git-change-base HEAD^,--git-change-base df22abe4,--no-git-change-baseβ finds files changed by all commits in the current branch, going from most recent and stopping when it hits a commit that is also present in the history of the branch/commit specified as the change base. Detective work but make it git β¨
Help and Debugging
--dummy,-d,--no-dummyβ dummy run, do not actually execute anything. Just pretend, no cap.
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. One at a time, bestie, we're being intentional π--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. Digital hoarding, but make it diagnostic π--procname-prefix ARG,--procname-prefix=ARG,--no-procname-prefixβ add a prefix to all proc names (as seen byps). So you can spot your babies in the process list π
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, so use this to make it fail gracefully instead. You get a warning, but things keep going. No drama, just a lil heads up π«Ά--yathui-long-duration 10,--no-yathui-long-durationβ minimum duration length (seconds) before a test goes from MEDIUM to LONG. Ten seconds and you're officially long, bestie.--yathui-medium-duration 5,--no-yathui-medium-durationβ minimum duration length (seconds) before a test goes from SHORT to MEDIUM. Five seconds, congratulations, you've graduated.--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. Persistence! Resilience! Main character energy! πͺ
Can be specified multiple times
--yathui-url http://my-yath-ui.com/...,--uri http://my-yath-ui.com/...,--no-yathui-urlβ Yath-UI url. That's the address, that's the destination, that's the whole thing π
π₯ SOURCE π₯
The source code repository for Test2-Harness can be found at http://github.com/Test-More/Test2-Harness/. Go lurk, it's fine, we all do it π
π 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/
and that's the whole page, bestie β¨ you officially know everything about App::Y...::watch π
this was perl v5.40.1, dated 2026-05-10, and the page is App::Y...::watch(3pm) β go forth and tail those logs, love u, bye π
π¦
π¦ 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