App::Y...nd::run(3pm)
๐ NAME ๐
App::Yath::Command::run โ bestie, this is the run command, and it is literally here to run your tests using the persistent test runner ๐
(also hiii, you're reading the manual page App::Yath::Command::run(3pm) from the User Contributed Perl Documentation โ it also answers to App::Yath::run(3pm), and this is part 1 of 3, so there is more coming, do not go anywhere ๐ซถ)
๐ฆ DESCRIPTION ๐ฆ
okay so picture this: you've already got a persistent instance up and running (that's a whole separate thing โ check the start command for the deets on how to launch a persistant instance, and yes, that's how it's spelled here, we keep it exactly as written, no notes ๐
). This command runs your tests through that already-started persistent instance. that's it, that's the vibe, iconic โจ
๐ USAGE ๐
$ yath [YATH OPTIONS] run [COMMAND OPTIONS]
โจ YATH OPTIONS โจ
Developer
--dev-lib,--dev-lib=lib,-D,-D=lib,-Dlib,--no-dev-libโ drops paths into@INCbefore loading ANYTHING. This is the one you reach for if you're developingyathoryathplugins, so youryathscript finds the local code instead of the installed versions of the same code. You can hand it an argument (-Dfoo) to provide a custom path, or you can just use-Dwithout an 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. And if the current directory is not writable it will default to/tmp/yath-persist.json, which 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. Best used in a.yath.rcfile. And heads up, this is necessary for a persistent runner. no label, no runner, fr fr ๐ซถ
Finder Options
--finder MyFinder,--finder +Test2::Harness::Finder::MyFinder,--no-finderโ pick which Finder subclass gets used when searching for files / processing the file list. Use the+prefix to specify a fully qualified namespace, otherwise theTest2::Harness::Finder::XXXnamespace is assumed. periodt ๐
Help and Debugging
--show-opts,--no-show-optsโ exit after showing whatyaththinks your options mean. like a lil vibe check on your flags ๐--version,-V,--no-versionโ exit after showing a helpful usage message.
Plugins
--no-scan-plugins,--no-no-scan-pluginsโ normallyyathscans for and loads allApp::Yath::Plugin::*modules in order to bring in command-line options they may provide. This flag disables that. Super 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 ayathplugin. 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 ๐ญ (yes bestie, that is literally what the page says, I am not about to invent something). 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 the 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 coninue even if the coverage file/url is invalid. (and yes โ "coninue" โ that's the typo straight off the page and honestly? keeping it exactly as written, iconic ๐)--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 ๐ฃ๏ธ
Finder Options
--changed path/to/file,--no-changedโ specify one or more files as having been changed. Can be specified multiple times--changed-only,--no-changed-onlyโ only search for tests for changed files (Requires a coverage data source, also requires a list of changes either from the--changedoption, or a plugin that implementschanged_files()orchanged_diff()). ๐--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 asgit diff -W --minimal -U1000000. ๐ฉท--changes-exclude-file path/to/file,--no-changes-exclude-fileโ specify 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 onlyopen()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 will be inserted unmodified into a$file =~ m/$pattern/check. Can be specified multiple times ๐๐๐--changes-filter-file path/to/file,--no-changes-filter-fileโ specify one or more files to check for changes. Changes to other files will be ignored. Can be specified multiple times--changes-filter-pattern '(apple|pear|orange)',--no-changes-filter-patternโ specify a pattern for change checking. When only running tests for changed files this will limit which files are checked for changes. Only files that match this pattern will be checked. Your pattern will be 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โ specify 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โ specify 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 ๐ฏ
okay that's everything in part 1 bestie, hold on tight because there is more coming ๐ซถ
--durations file.json,--durations http://example.com/durations.json,--no-durationsโ point this at a json file or a url that holds a hash where the keys are relative test filenames and the values are'SHORT','MEDIUM', or'LONG'. This overrides the durations that were listed in the file headers. If the durations file or url doesn't work, an exception gets thrown. no cap, it will yell ๐--durations-threshold ARG,--durations-threshold=ARG,--Dt ARG,--Dt=ARG,--no-durations-thresholdโ only bother fetching duration data if you're running at least this many tests. Default is (-jvalue + 1). ๐งฎ--exclude-file t/nope.t,--no-exclude-fileโ exclude a file from testing ๐
Can be specified multiple times
--exclude-list file.txt,--exclude-list http://example.com/exclusions.txt,--no-exclude-listโ point at a file or url that has a newline-separated list of test file names to exclude from testing. Start a line with#and it gets commented 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 usingm/$PATTERN/๐ฏ
Can be specified multiple times
--extension ARG,--extension=ARG,--ext ARG,--ext=ARG,--no-extensionโ tell it which test filename extensions are valid, default:tandt2โจ
Can be specified multiple times
--maybe-durations file.json,--maybe-durations http://example.com/durations.json,--no-maybe-durationsโ point at a json file or a url with a hash where the keys are relative test filenames and the values are'SHORT','MEDIUM', or'LONG'. This overrides the durations listed in the file headers. An exception gets thrown if the durations file or url doesn't work. same energy as--durations, just vibing under a different name fr fr--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, pulled from a log file (or the last log file if you don't name one). Plugins can intercept this โ for exampleYathUIDB, which grabs a run UUID and derives the tests to re-run from that. ๐--rerun-all,--rerun-all=path/to/log.jsonl,--rerun-all=plugin_specific_string,--no-rerun-allโ re-run all the tests from a previous run, from a log file (or the last log file). Plugins can intercept this, likeYathUIDB, which grabs a run UUID and derives tests to re-run from that. ๐--rerun-failed,--rerun-failed=path/to/log.jsonl,--rerun-failed=plugin_specific_string,--no-rerun-failedโ re-run the failed tests from a previous run, from a log file (or the last log file). Plugins can intercept this, likeYathUIDB, which grabs a run UUID and derives tests to re-run from that. ๐ญ--rerun-missed,--rerun-missed=path/to/log.jsonl,--rerun-missed=plugin_specific_string,--no-rerun-missedโ run the tests that got missed by a previously aborted/stopped run, from a log file (or the last log file). Plugins can intercept this, likeYathUIDB, which grabs a run UUID and derives 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 actually get run ๐๏ธ
Can be specified multiple times
--rerun-passed,--rerun-passed=path/to/log.jsonl,--rerun-passed=plugin_specific_string,--no-rerun-passedโ re-run the passed tests from a previous run, from a log file (or the last log file). Plugins can intercept this, likeYathUIDB, which grabs a run UUID and derives tests to re-run from that. ๐--rerun-plugin Foo,--rerun-plugin +App::Yath::Plugin::Foo,--no-rerun-pluginโ which plugin(s) should be used for rerun (it'll fall back 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 the tests that got retried in a previous run, from a log file (or the last log file). Plugins can intercept this, likeYathUIDB, which grabs a run UUID and derives 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. Lowkey you can usually just list these as plain command line arguments without the--searchprefix. ๐
Can be specified multiple times
--show-changed-files,--no-show-changed-filesโ print a list of changed files if any are found ๐
โจ Formatter Options โจ
--formatter ARG,--formatter=ARG,--no-formatterโ the manpage literally just saysNO DESCRIPTION - FIX ME๐ keeping it 100, that's all it says, so that's all I'm telling you--qvf,--no-qvfโ [Q]uiet, but [V]erbose on [F]ailure. Hide all output from tests when they pass, except to say they passed. But if a test fails, then ALL the output from that test gets verbosely dumped out. iconic behaviour honestly ๐--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 the files changed by all the commits in the current branch, starting from the most recent and stopping when you hit a commit that's also present in the history of the branch/commit you specified as the change base. ๐ฆ
๐ Help and Debugging ๐
--dummy,-d,--no-dummyโ dummy run, it doesn't actually execute anything ๐
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, with stdin forwarded to it ๐ฎ--keep-dirs,--keep_dir,-k,--no-keep-dirsโ do not delete directories when done. super useful if you wanna go snooping through the directories that various commands used. ๐--procname-prefix ARG,--procname-prefix=ARG,--no-procname-prefixโ add a prefix to all proc names (as seen byps). ๐ท๏ธ--summary,--summary=/path/to/summary.json,--no-summaryโ write out a summary json file; if you don't give it a path,'summary.json'gets used. The.jsonextension is added automatically if you omit it. ๐
๐ Logging Options ๐
--bzip2,--bz2,--bzip2_log,-B,--no-bzip2โ use bzip2 compression when writing the log. This option implies-L. The.bz2prefix is added to the log file name for you. ๐๏ธ--gzip,--gz,--gzip_log,-G,--no-gzipโ use gzip compression when writing the log. This option implies-L. The.gzprefix is added to the log file name for you. ๐๏ธ--log,-L,--no-logโ turn on logging ๐--log-dir ARG,--log-dir=ARG,--no-log-dirโ specify a log directory. Will fall back to the system temp dir. ๐--log-file ARG,--log-file=ARG,-F ARG,-F=ARG,--no-log-fileโ specify the name of the log file. This option implies-L. ๐--log-file-format ARG,--log-file-format=ARG,--lff ARG,--lff=ARG,--no-log-file-formatโ specify the format for automatically-generated log files. Overridden by--log-file, if given. This option implies-L(Default:$YATH_LOG_FILE_FORMAT, if that is set, or else"%!P%Y-%m-%d~%H:%M:%S~%!U~%!p.jsonl"). This is a string where percent-escape sequences get replaced as perPOSIX::strftime. These special escape sequences also get replaced: (%!P: project name followed by a~, if a project is defined, otherwise an empty string) (%!U: the unique test run ID) (%!p: the process ID) (%!S: the number of seconds since local midnight UTC) โฐ
Can also be set with the following environment variables: YATH_LOG_FILE_FORMAT, TEST2_HARNESS_LOG_FORMAT
๐ Notification Options ๐
--notify-email foo@example.com,--no-notify-emailโ email the test results to the specified email address(es) ๐ง
Can be specified multiple times
--notify-email-fail foo@example.com,--no-notify-email-failโ email the failing results to the specified email address(es) ๐ฌ
Can be specified multiple times
--notify-email-from foo@example.com,--no-notify-email-fromโ if any email gets sent, this is who it will be from โ๏ธ--notify-email-owner,--no-notify-email-ownerโ email the owner of the broken test files upon failure. Add# HARNESS-META-OWNER foo@example.comto the top of a test file to give it an owner. ๐ค--notify-no-batch-email,--no-notify-no-batch-emailโ usually owner failures get sent as a single batch at the end of testing. Toggle this to send failures as they happen. โก--notify-no-batch-slack,--no-notify-no-batch-slackโ usually owner failures get sent as a single batch at the end of testing. Toggle this to send failures as they happen. โก--notify-slack '#foo',--notify-slack '@bar',--no-notify-slackโ send results to a slack channel and/or user ๐ฌ
Can be specified multiple times
--notify-slack-fail '#foo',--notify-slack-fail '@bar',--no-notify-slack-failโ send the failing results to a slack channel and/or user ๐
Can be specified multiple times
--notify-slack-owner,--no-notify-slack-ownerโ send slack notifications to the slack channels/users listed in the test meta-data when tests fail. ๐จ--notify-slack-url https://hooks.slack.com/...,--no-notify-slack-urlโ specify an API endpoint for slack webhook integrations. ๐--notify-text ARG,--notify-text=ARG,--message ARG,--message=ARG,--msg ARG,--msg=ARG,--no-notify-textโ add a custom text snippet to email/slack notifications โ๏ธ--notify-text-module ARG,--notify-text-module=ARG,--message_module ARG,--message_module=ARG,--no-notify-text-moduleโ use the specified module to generate messages for emails and/or slack. ๐งฉ
โญ Run Options โญ
--author-testing,-A,--no-author-testingโ this flips theAUTHOR_TESTINGenvironment variable to true. Yeah bestie, some tests literally will not run unless they know you're the author, and this is how you tell them. ๐--dbi-profiling,--no-dbi-profilingโ pulls inTest2::Plugin::DBIProfileso you're collecting database profiling data while the tests run. Gotta see where the queries are eating your time, fr fr. ๐ฅ--env-var VAR=VAL,-EVAR=VAL,-E VAR=VAL,--no-env-varโ sets environment variables that get applied when each test runs. ๐
Can be specified multiple times, so stack 'em up.
--event-uuids,--uuids,--no-event-uuidsโ usesTest2::Plugin::UUIDinside tests. Default: on. The UUIDs are giving uniqueness, and honestly? Iconic. โจ--fields name:details,--fields JSON_STRING,-f name:details,-f JSON_STRING,--no-fieldsโ adds custom data to the harness run. Very main-character of you to leave your own little notes in there. ๐
Can be specified multiple times.
--input ARG,--input=ARG,--no-inputโ an input string used as standard input for ALL tests. Literally all of them. Also check out--input-fileif a string isn't enough. ๐--input-file ARG,--input-file=ARG,--no-input-fileโ same energy, but you point at a file, and that file becomes standard input for ALL tests. ๐--io-events,--no-io-eventsโ usesTest2::Plugin::IOEventsinside tests, which turns allprints into test2 events. Default: off. So if you don't set this, your prints stay prints. ๐ฆ--link 'https://travis.work/builds/42',--link 'https://jenkins.work/job/42',--link 'https://buildbot.work/builders/foo/builds/42',--no-linkโ drops one or more links so people can go look at more info about this run. Sharing is caring, bestie. ๐ซถ
Can be specified multiple times.
--load ARG,--load=ARG,--load-module ARG,--load-module=ARG,-m ARG,-m=ARG,--no-loadโ loads a module in each test, and this happens after fork. Theimportmethod is not called. Not even a little bit. ๐
Can be specified multiple times.
--load-import Module,--load-import Module=import_arg1,arg2,...,--loadim Module,--loadim Module=import_arg1,arg2,...,-M Module,-M Module=import_arg1,arg2,...,--no-load-importโ also loads a module in each test after fork, but this timeimportis called. ๐ธ
Can be specified multiple times. And heads up: if the same key shows up multiple times, the value lists get appended together. No overwriting, just vibes stacking. โจ
--mem-usage,--no-mem-usageโ usesTest2::Plugin::MemUsageinside tests. Default: on. Watching the memory like ๐๐--retry ARG,--retry=ARG,-r ARG,-r=ARG,--no-retryโ runs any job that failed a second time. And please clock this:--retry=1means failing tests get attempted twice! The number isn't "extra tries", it's total tries. Not me learning this the hard way. ๐ญ--retry-isolated,--retry-iso,--no-retry-isolatedโ if true, any job retries happen in isolation, like-j1was set. Alone time for the retry, as it deserves. ๐ง--run-id,--id,--no-run-idโ sets a specific run-id. Default: a UUID. ๐--test-args ARG,--test-args=ARG,--no-test-argsโ arguments to pass in as@ARGVfor all tests that run. And the easy-mode version is using the'::'argument separator. ๐
Can be specified multiple times.
--stream,--no-streamโ uses the stream formatter. Default is on. Stream it, obviously. ๐ก--tap,--TAP,----no-stream,--no-tapโ okay so listen. The TAP format is lossy and clunky, no shade to TAP but it's true.Test2::Harnessnormally uses a newer streaming format to receive test results. But there are old/legacy tests out there where that newer thing causes problems, and in those cases setting--TAPor--no-streamcan help. ๐
Yes, ----no-stream really has four dashes up there. Copy it exactly, bestie. Do not "fix" it. ๐
โจ YathUI Options โจ
--yathui-api-key ARG,--yathui-api-key=ARG,--no-yathui-api-keyโ your Yath-UI API key. You don't need it if your Yath-UI instance is set to single-user. ๐--yathui-coverage,--no-yathui-coverageโ polls coverage data from Yath-UI to figure out which tests should run for changed files. Smart girl behavior. ๐--yathui-durations,--no-yathui-durationsโ polls duration data from Yath-UI to help order tests efficiently. Efficiency is a love language. โฑ๏ธ--yathui-grace,--no-yathui-graceโ normally ifyathcan't connect to yath-ui it throws an error. Turn this on and it fails gracefully instead: you get a warning, but things keep going. ๐ฆ--yathui-long-duration 10,--no-yathui-long-durationโ the minimum duration length, in seconds, before a test graduates from MEDIUM to LONG. Glow-up thresholds. โจ--yathui-medium-duration 5,--no-yathui-medium-durationโ the minimum duration length, in seconds, before a test goes from SHORT to MEDIUM. The middle child zone. ๐--yathui-mode summary,--yathui-mode qvf,--yathui-mode qvfd,--yathui-mode complete,--no-yathui-modeโ sets the upload mode. Default is'qvfd'. That's the one. ๐--yathui-project ARG,--yathui-project=ARG,--no-yathui-projectโ the Yath-UI project your test results belong to. ๐๏ธ--yathui-retry,--no-yathui-retryโ how many times to try an operation before giving up. Persistence, but make it bounded. ๐ช
Can be specified multiple times.
--yathui-upload,--no-yathui-uploadโ uploads the log to Yath-UI. Ship it. ๐ค--yathui-url http://my-yath-ui.com/...,--uri http://my-yath-ui.com/...,--no-yathui-urlโ the Yath-UI url. ๐
NO CATEGORY - FIX ME
--check-reload-state,--no-check-reload-stateโ aborts the run if there are unfixes reload errors, and shows a confirmation dialogue for unfixed reload warnings. It is, genuinely, checking on the reload state. ๐จ
unfixesandunfixedโ that's exactly how it's written in the original, so we are keeping it exactly, no cap.
๐ SOURCE ๐
The source code repository for Test2-Harness can be found at http://github.com/Test-More/Test2-Harness/. Go look, bestie, it's all right there. ๐ซถ
๐ 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 made it to the end of part three ๐๐ฆโจ This came from perl v5.40.1, generated 2026-05-10, and it's the App::Y...nd::run(3pm) page from the User Contributed Perl Documentation. You're officially fluent now. Slay. ๐
๐
๐ฆ 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