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

πŸ¦‹ NAME πŸ¦‹

okay bestie, meet App::Yath::Options::Finder β€” this is the group chat's Finder options for Yath, and it's serving from the User Contributed Perl Documentation section 3pm, aka the (3pm) girlies. She's not a command you run, she's a module where all the finder options live. πŸ’…


✨ DESCRIPTION ✨

So like. This is where the command line options for discovering test files are defined. That's it, that's the whole job. She finds tests. She's the scout. She's the one going "wait, where are the tests at" and then actually going and finding them. πŸ”


πŸ”₯ PROVIDED OPTIONS πŸ”₯

🌸 YATH OPTIONS (PRE-COMMAND) 🌸

πŸŽ€ Finder Options

  • --finder MyFinder, --finder +Test2::Harness::Finder::MyFinder, --no-finder β€” says which Finder subclass to use when searching for files / processing the file list. Slap a + prefix on it to give a fully qualified namespace, otherwise the Test2::Harness::Finder::XXX namespace is what gets assumed. no cap. ✨

πŸ¦‹ COMMAND OPTIONS πŸ¦‹

πŸ’– Finder Options

  • --changed path/to/file, --no-changed β€” says one or more files got changed. that's it, that's the vibe.

Can be specified multiple times

  • --changed-only, --no-changed-only β€” only search for tests for changed files. This needs a coverage data source, and it also needs a list of changes β€” either from the --changed option or from a plugin that implements changed_files() or changed_diff(). no list, no service, periodt.
  • --changes-diff path/to/diff.diff, --no-changes-diff β€” path to a diff file that should be used to find changed files for use with --changed-only. This must be in the same format as git diff -W --minimal -U1000000 β€” literally that, fr fr. 🫢
  • --changes-exclude-file path/to/file, --no-changes-exclude-file β€” says one or more files to ignore when looking at changes.

Can be specified multiple times

  • --changes-exclude-loads, --no-changes-exclude-loads β€” exclude coverage tests which only load changed files but never call code from them. (default: off)
  • --changes-exclude-nonsub, --no-changes-exclude-nonsub β€” exclude changes outside of subroutines, perl files only. (default: off)
  • --changes-exclude-opens, --no-changes-exclude-opens β€” exclude coverage tests which only open() changed files but never call code from them. (default: off)
  • --changes-exclude-pattern '(apple|pear|orange)', --no-changes-exclude-pattern β€” ignore files matching this pattern when looking for changes. your pattern gets inserted unmodified into a $file =~ m/$pattern/ check.

Can be specified multiple times

  • --changes-filter-file path/to/file, --no-changes-filter-file β€” says one or more files to check for changes. changes to other files are just gonna be ignored, sorry to them.

Can be specified multiple times

  • --changes-filter-pattern '(apple|pear|orange)', --no-changes-filter-pattern β€” a pattern for change checking. when you're only running tests for changed files, this limits which files get checked for changes β€” only files matching this pattern get checked. your pattern gets inserted unmodified into a $file =~ m/$pattern/ check.

Can be specified multiple times

  • --changes-include-whitespace, --no-changes-include-whitespace β€” include changed lines that are whitespace only. (default: off)
  • --changes-plugin Git, --changes-plugin +App::Yath::Plugin::Git, --no-changes-plugin β€” what plugin should be used to detect changed files. πŸ‘‘
  • --default-at-search ARG, --default-at-search=ARG, --no-default-at-search β€” the default file/dir search when 'AUTHOR_TESTING' is set. defaults to './xt'. the default AT search is only used if no files were specified at the command line.

Can be specified multiple times

  • --default-search ARG, --default-search=ARG, --no-default-search β€” the default file/dir search. defaults to './t', './t2', and 'test.pl'. the default search is only used if no files were specified at the command line.

Can be specified multiple times

  • --durations file.json, --durations http://example.com/durations.json, --no-durations β€” points at a json file or url that has a hash of relative test filenames as keys and 'SHORT', 'MEDIUM', or 'LONG' as values. this overrides durations listed in the file headers. if the durations file or url doesn't work, an exception gets thrown. so like, bring a valid one. 😭
  • --durations-threshold ARG, --durations-threshold=ARG, --Dt ARG, --Dt=ARG, --no-durations-threshold β€” only fetch duration data if you're running at least this many tests. default is -j value + 1.
  • --exclude-file t/nope.t, --no-exclude-file β€” exclude a file from testing. not you, t/nope.t, go home.

Can be specified multiple times

  • --exclude-list file.txt, --exclude-list http://example.com/exclusions.txt, --no-exclude-list β€” points at a file or url with a new line separated list of test file names to exclude from testing. starting a line with a '#' comments it out β€” that's for compatibility with Test2::Aggregate list files, iykyk.

Can be specified multiple times

  • --exclude-pattern t/nope.t, --no-exclude-pattern β€” exclude a pattern from testing, matched using m/$PATTERN/.

Can be specified multiple times

  • --extension ARG, --extension=ARG, --ext ARG, --ext=ARG, --no-extension β€” specify valid test filename extensions, default: t and t2.

Can be specified multiple times

  • --maybe-durations file.json, --maybe-durations http://example.com/durations.json, --no-maybe-durations β€” points at a json file or url with a hash of relative test filenames as keys and 'SHORT', 'MEDIUM', or 'LONG' as values. this overrides durations listed in the file headers. if the durations file or url doesn't work, an exception gets thrown. πŸ’€
  • --no-long, --no-no-long β€” do not run tests that have their duration flag set to 'LONG'.
  • --only-long, --no-only-long β€” only run tests that have their duration flag set to 'LONG'.
  • --rerun, --rerun=path/to/log.jsonl, --rerun=plugin_specific_string, --no-rerun β€” re-run tests from a previous run, from a log file (or the last log file). plugins can intercept this, like YathUIDB, which will grab a run UUID and derive tests to re-run from that. iconic behaviour honestly. 🌈
  • --rerun-all, --rerun-all=path/to/log.jsonl, --rerun-all=plugin_specific_string, --no-rerun-all β€” re-run all tests from a previous run, from a log file (or the last log file). plugins can intercept this, such as YathUIDB, which will grab a run UUID and derive tests to re-run from that.
  • --rerun-failed, --rerun-failed=path/to/log.jsonl, --rerun-failed=plugin_specific_string, --no-rerun-failed β€” re-run failed tests from a previous run, from a log file (or the last log file). plugins can intercept this, such as YathUIDB, which will grab a run UUID and derive tests to re-run from that.
  • --rerun-missed, --rerun-missed=path/to/log.jsonl, --rerun-missed=plugin_specific_string, --no-rerun-missed β€” run missed tests from a previously aborted/stopped run, from a log file (or the last log file). plugins can intercept this, such as YathUIDB, which will grab a run UUID and derive tests to re-run from that.
  • --rerun-modes failed,missed,..., --rerun-modes all, --rerun-modes failed, --rerun-modes missed, --rerun-modes passed, --rerun-modes retried, --rerun-mode failed,missed,..., --rerun-mode all, --rerun-mode failed, --rerun-mode missed, --rerun-mode passed, --rerun-mode retried, --no-rerun-modes β€” pick which test categories to run. your pick, your power. ✨

Can be specified multiple times

  • --rerun-passed, --rerun-passed=path/to/log.jsonl, --rerun-passed=plugin_specific_string, --no-rerun-passed β€” re-run passed tests from a previous run, from a log file (or the last log file). plugins can intercept this, such as YathUIDB, which will grab a run UUID and derive tests to re-run from that.
  • --rerun-plugin Foo, --rerun-plugin +App::Yath::Plugin::Foo, --no-rerun-plugin β€” what plugin(s) should be used for rerun. it will fallback to other plugins if the listed ones decline the value, this is just used to set an order of priority.

Can be specified multiple times

  • --rerun-retried, --rerun-retried=path/to/log.jsonl, --rerun-retried=plugin_specific_string, --no-rerun-retried β€” re-run retried tests from a previous run, from a log file (or the last log file). plugins can intercept this, such as YathUIDB, which will grab a run UUID and derive tests to re-run from that.
  • --search ARG, --search=ARG, --no-search β€” a list of tests and test directories to use instead of the default search paths. typically you can just list these as command line arguments without the --search prefix. shortcuts, we love them. 🫢

Can be specified multiple times

  • --show-changed-files, --no-show-changed-files β€” print a list of changed files if any are found. show and tell! πŸ’…

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


and that's the whole page bestie, no notes, ate and left no crumbs πŸ‘‘

okay so fun little outro for you: this whole thing is perl v5.40.1, dated 2026-05-10, and it came to you straight from the User Contributed Perl Documentation shelf in the 3pm section. love that for us. bye babe πŸ’–βœ¨

πŸ“¦ where this page comes from