1App::Yath::Command::proUjseecrtsC(o3n)tributed Perl DocuAmpepn:t:aYtaitohn::Command::projects(3)
2
3
4
6 App::Yath::Command::projects - Run tests for multiple projects
7
9 This command will run all the tests for each project within a parent
10 directory.
11
13 $ yath [YATH OPTIONS] projects [COMMAND OPTIONS]
14
15 YATH OPTIONS
16 Developer
17
18 --dev-lib
19 --dev-lib=lib
20 -D
21 -D=lib
22 -Dlib
23 --no-dev-lib
24 Add paths to @INC before loading ANYTHING. This is what you use if
25 you are developing yath or yath plugins to make sure the yath
26 script finds the local code instead of the installed versions of
27 the same code. You can provide an argument (-Dfoo) to provide a
28 custom path, or you can just use -D without and arg to add lib,
29 blib/lib and blib/arch.
30
31 Can be specified multiple times
32
33 Environment
34
35 --persist-dir ARG
36 --persist-dir=ARG
37 --no-persist-dir
38 Where to find persistence files.
39
40 --persist-file ARG
41 --persist-file=ARG
42 --pfile ARG
43 --pfile=ARG
44 --no-persist-file
45 Where to find the persistence file. The default is
46 /{system-tempdir}/project-yath-persist.json. If no project is
47 specified then it will fall back to the current directory. If the
48 current directory is not writable it will default to
49 /tmp/yath-persist.json which limits you to one persistent runner on
50 your system.
51
52 --project ARG
53 --project=ARG
54 --project-name ARG
55 --project-name=ARG
56 --no-project
57 This lets you provide a label for your current project/codebase.
58 This is best used in a .yath.rc file. This is necessary for a
59 persistent runner.
60
61 Finder Options
62
63 --finder MyFinder
64 --finder +Test2::Harness::Finder::MyFinder
65 --no-finder
66 Specify what Finder subclass to use when searching for
67 files/processing the file list. Use the "+" prefix to specify a
68 fully qualified namespace, otherwise Test2::Harness::Finder::XXX
69 namespace is assumed.
70
71 Help and Debugging
72
73 --show-opts
74 --no-show-opts
75 Exit after showing what yath thinks your options mean
76
77 --version
78 -V
79 --no-version
80 Exit after showing a helpful usage message
81
82 Plugins
83
84 --no-scan-plugins
85 --no-no-scan-plugins
86 Normally yath scans for and loads all App::Yath::Plugin::* modules
87 in order to bring in command-line options they may provide. This
88 flag will disable that. This is useful if you have a naughty plugin
89 that is loading other modules when it should not.
90
91 --plugins PLUGIN
92 --plugins +App::Yath::Plugin::PLUGIN
93 --plugins PLUGIN=arg1,arg2,...
94 --plugin PLUGIN
95 --plugin +App::Yath::Plugin::PLUGIN
96 --plugin PLUGIN=arg1,arg2,...
97 -pPLUGIN
98 --no-plugins
99 Load a yath plugin.
100
101 Can be specified multiple times
102
103 COMMAND OPTIONS
104 Collector Options
105
106 --max-open-jobs 18
107 --no-max-open-jobs
108 Maximum number of jobs a collector can process at a time, if more
109 jobs are pending their output will be delayed until the earlier
110 jobs have been processed. (Default: double the -j value)
111
112 --max-poll-events 1000
113 --no-max-poll-events
114 Maximum number of events to poll from a job before jumping to the
115 next job. (Default: 1000)
116
117 Cover Options
118
119 --cover-aggregator ByTest
120 --cover-aggregator ByRun
121 --cover-aggregator +Custom::Aggregator
122 --cover-agg ByTest
123 --cover-agg ByRun
124 --cover-agg +Custom::Aggregator
125 --no-cover-aggregator
126 Choose a custom aggregator subclass
127
128 --cover-class ARG
129 --cover-class=ARG
130 --no-cover-class
131 Choose a Test2::Plugin::Cover subclass
132
133 --cover-dirs ARG
134 --cover-dirs=ARG
135 --cover-dir ARG
136 --cover-dir=ARG
137 --no-cover-dirs
138 NO DESCRIPTION - FIX ME
139
140 Can be specified multiple times
141
142 --cover-exclude-private
143 --no-cover-exclude-private
144 --cover-files
145 --no-cover-files
146 Use Test2::Plugin::Cover to collect coverage data for what files
147 are touched by what tests. Unlike Devel::Cover this has very little
148 performance impact (About 4% difference)
149
150 --cover-from path/to/log.jsonl
151 --cover-from http://example.com/coverage
152 --cover-from path/to/coverage.jsonl
153 --no-cover-from
154 This can be a test log, a coverage dump (old style json or new
155 jsonl format), or a url to any of the previous. Tests will not be
156 run if the file/url is invalid.
157
158 --cover-from-type json
159 --cover-from-type jsonl
160 --cover-from-type log
161 --no-cover-from-type
162 File type for coverage source. Usually it can be detected, but when
163 it cannot be you should specify. "json" is old style single-blob
164 coverage data, "jsonl" is the new by-test style, "log" is a logfile
165 from a previous run.
166
167 --cover-maybe-from path/to/log.jsonl
168 --cover-maybe-from http://example.com/coverage
169 --cover-maybe-from path/to/coverage.jsonl
170 --no-cover-maybe-from
171 This can be a test log, a coverage dump (old style json or new
172 jsonl format), or a url to any of the previous. Tests will coninue
173 if even if the coverage file/url is invalid.
174
175 --cover-maybe-from-type json
176 --cover-maybe-from-type jsonl
177 --cover-maybe-from-type log
178 --no-cover-maybe-from-type
179 Same as "from_type" but for "maybe_from". Defaults to "from_type"
180 if that is specified, otherwise auto-detect
181
182 --cover-metrics
183 --no-cover-metrics
184 --cover-types ARG
185 --cover-types=ARG
186 --cover-type ARG
187 --cover-type=ARG
188 --no-cover-types
189 NO DESCRIPTION - FIX ME
190
191 Can be specified multiple times
192
193 --cover-write
194 --cover-write=coverage.jsonl
195 --cover-write=coverage.json
196 --no-cover-write
197 Create a json or jsonl file of all coverage data seen during the
198 run (This implies --cover-files).
199
200 Display Options
201
202 --color
203 --no-color
204 Turn color on, default is true if STDOUT is a TTY.
205
206 --hide-runner-output
207 --no-hide-runner-output
208 Hide output from the runner, showing only test output. (See Also
209 truncate_runner_output)
210
211 --no-wrap
212 --no-no-wrap
213 Do not do fancy text-wrapping, let the terminal handle it
214
215 --progress
216 --no-progress
217 Toggle progress indicators. On by default if STDOUT is a TTY. You
218 can use --no-progress to disable the 'events seen' counter and
219 buffered event pre-display
220
221 --quiet
222 -q
223 --no-quiet
224 Be very quiet.
225
226 Can be specified multiple times
227
228 --renderers +My::Renderer
229 --renderers Renderer=arg1,arg2,...
230 --renderer +My::Renderer
231 --renderer Renderer=arg1,arg2,...
232 --no-renderers
233 Specify renderers, (Default: "Formatter=Test2"). Use "+" to give a
234 fully qualified module name. Without "+"
235 "Test2::Harness::Renderer::" will be prepended to your argument.
236
237 Can be specified multiple times. If the same key is listed multiple
238 times the value lists will be appended together.
239
240 --show-times
241 -T
242 --no-show-times
243 Show the timing data for each job
244
245 --term-width 80
246 --term-width 200
247 --term-size 80
248 --term-size 200
249 --no-term-width
250 Alternative to setting $TABLE_TERM_SIZE. Setting this will override
251 the terminal width detection to the number of characters specified.
252
253 --truncate-runner-output
254 --no-truncate-runner-output
255 Only show runner output that was generated after the current
256 command. This is only useful with a persistent runner.
257
258 --verbose
259 -v
260 --no-verbose
261 Be more verbose
262
263 Can be specified multiple times
264
265 Finder Options
266
267 --default-at-search ARG
268 --default-at-search=ARG
269 --no-default-at-search
270 Specify the default file/dir search when 'AUTHOR_TESTING' is set.
271 Defaults to './xt'. The default AT search is only used if no files
272 were specified at the command line
273
274 Can be specified multiple times
275
276 --default-search ARG
277 --default-search=ARG
278 --no-default-search
279 Specify the default file/dir search. defaults to './t', './t2', and
280 'test.pl'. The default search is only used if no files were
281 specified at the command line
282
283 Can be specified multiple times
284
285 --durations file.json
286 --durations http://example.com/durations.json
287 --no-durations
288 Point at a json file or url which has a hash of relative test
289 filenames as keys, and 'SHORT', 'MEDIUM', or 'LONG' as values. This
290 will override durations listed in the file headers. An exception
291 will be thrown if the durations file or url does not work.
292
293 --durations-threshold ARG
294 --durations-threshold=ARG
295 --Dt ARG
296 --Dt=ARG
297 --no-durations-threshold
298 Only fetch duration data if running at least this number of tests.
299 Default (-j value + 1)
300
301 --exclude-file t/nope.t
302 --no-exclude-file
303 Exclude a file from testing
304
305 Can be specified multiple times
306
307 --exclude-list file.txt
308 --exclude-list http://example.com/exclusions.txt
309 --no-exclude-list
310 Point at a file or url which has a new line separated list of test
311 file names to exclude from testing. Starting a line with a '#' will
312 comment it out (for compatibility with Test2::Aggregate list
313 files).
314
315 Can be specified multiple times
316
317 --exclude-pattern t/nope.t
318 --no-exclude-pattern
319 Exclude a pattern from testing, matched using m/$PATTERN/
320
321 Can be specified multiple times
322
323 --extension ARG
324 --extension=ARG
325 --ext ARG
326 --ext=ARG
327 --no-extension
328 Specify valid test filename extensions, default: t and t2
329
330 Can be specified multiple times
331
332 --maybe-durations file.json
333 --maybe-durations http://example.com/durations.json
334 --no-maybe-durations
335 Point at a json file or url which has a hash of relative test
336 filenames as keys, and 'SHORT', 'MEDIUM', or 'LONG' as values. This
337 will override durations listed in the file headers. An exception
338 will be thrown if the durations file or url does not work.
339
340 --no-long
341 --no-no-long
342 Do not run tests that have their duration flag set to 'LONG'
343
344 --only-long
345 --no-only-long
346 Only run tests that have their duration flag set to 'LONG'
347
348 --rerun
349 --rerun=path/to/log.jsonl
350 --rerun=plugin_specific_string
351 --no-rerun
352 Re-Run tests from a previous run from a log file (or last log
353 file). Plugins can intercept this, such as YathUIDB which will grab
354 a run UUID and derive tests to re-run from that.
355
356 --rerun-all
357 --rerun-all=path/to/log.jsonl
358 --rerun-all=plugin_specific_string
359 --no-rerun-all
360 Re-Run all tests from a previous run from a log file (or last log
361 file). Plugins can intercept this, such as YathUIDB which will grab
362 a run UUID and derive tests to re-run from that.
363
364 --rerun-failed
365 --rerun-failed=path/to/log.jsonl
366 --rerun-failed=plugin_specific_string
367 --no-rerun-failed
368 Re-Run failed tests from a previous run from a log file (or last
369 log file). Plugins can intercept this, such as YathUIDB which will
370 grab a run UUID and derive tests to re-run from that.
371
372 --rerun-missed
373 --rerun-missed=path/to/log.jsonl
374 --rerun-missed=plugin_specific_string
375 --no-rerun-missed
376 Run missed tests from a previously aborted/stopped run from a log
377 file (or last log file). Plugins can intercept this, such as
378 YathUIDB which will grab a run UUID and derive tests to re-run from
379 that.
380
381 --rerun-modes failed,missed,...
382 --rerun-modes all
383 --rerun-modes failed
384 --rerun-modes missed
385 --rerun-modes passed
386 --rerun-modes retried
387 --rerun-mode failed,missed,...
388 --rerun-mode all
389 --rerun-mode failed
390 --rerun-mode missed
391 --rerun-mode passed
392 --rerun-mode retried
393 --no-rerun-modes
394 Pick which test categories to run
395
396 Can be specified multiple times
397
398 --rerun-passed
399 --rerun-passed=path/to/log.jsonl
400 --rerun-passed=plugin_specific_string
401 --no-rerun-passed
402 Re-Run passed tests from a previous run from a log file (or last
403 log file). Plugins can intercept this, such as YathUIDB which will
404 grab a run UUID and derive tests to re-run from that.
405
406 --rerun-plugin Foo
407 --rerun-plugin +App::Yath::Plugin::Foo
408 --no-rerun-plugin
409 What plugin(s) should be used for rerun (will fallback to other
410 plugins if the listed ones decline the value, this is just used ot
411 set an order of priority)
412
413 Can be specified multiple times
414
415 --rerun-retried
416 --rerun-retried=path/to/log.jsonl
417 --rerun-retried=plugin_specific_string
418 --no-rerun-retried
419 Re-Run retried tests from a previous run from a log file (or last
420 log file). Plugins can intercept this, such as YathUIDB which will
421 grab a run UUID and derive tests to re-run from that.
422
423 --search ARG
424 --search=ARG
425 --no-search
426 List of tests and test directories to use instead of the default
427 search paths. Typically these can simply be listed as command line
428 arguments without the --search prefix.
429
430 Can be specified multiple times
431
432 Formatter Options
433
434 --formatter ARG
435 --formatter=ARG
436 --no-formatter
437 NO DESCRIPTION - FIX ME
438
439 --qvf
440 --no-qvf
441 [Q]uiet, but [V]erbose on [F]ailure. Hide all output from tests
442 when they pass, except to say they passed. If a test fails then ALL
443 output from the test is verbosely output.
444
445 --show-job-end
446 --no-show-job-end
447 Show output when a job ends. (Default: on)
448
449 --show-job-info
450 --no-show-job-info
451 Show the job configuration when a job starts. (Default: off, unless
452 -vv)
453
454 --show-job-launch
455 --no-show-job-launch
456 Show output for the start of a job. (Default: off unless -v)
457
458 --show-run-info
459 --no-show-run-info
460 Show the run configuration when a run starts. (Default: off, unless
461 -vv)
462
463 Git Options
464
465 --git-change-base master
466 --git-change-base HEAD^
467 --git-change-base df22abe4
468 --no-git-change-base
469 Find files changed by all commits in the current branch from most
470 recent stopping when a commit is found that is also present in the
471 history of the branch/commit specified as the change base.
472
473 Help and Debugging
474
475 --dummy
476 -d
477 --no-dummy
478 Dummy run, do not actually execute anything
479
480 Can also be set with the following environment variables:
481 "T2_HARNESS_DUMMY"
482
483 --help
484 -h
485 --no-help
486 exit after showing help information
487
488 --interactive
489 -i
490 --no-interactive
491 Use interactive mode, 1 test at a time, stdin forwarded to it
492
493 --keep-dirs
494 --keep_dir
495 -k
496 --no-keep-dirs
497 Do not delete directories when done. This is useful if you want to
498 inspect the directories used for various commands.
499
500 --procname-prefix ARG
501 --procname-prefix=ARG
502 --no-procname-prefix
503 Add a prefix to all proc names (as seen by ps).
504
505 --summary
506 --summary=/path/to/summary.json
507 --no-summary
508 Write out a summary json file, if no path is provided
509 'summary.json' will be used. The .json extension is added
510 automatically if omitted.
511
512 Logging Options
513
514 --bzip2
515 --bz2
516 --bzip2_log
517 -B
518 --no-bzip2
519 Use bzip2 compression when writing the log. This option implies -L.
520 The .bz2 prefix is added to log file name for you
521
522 --gzip
523 --gz
524 --gzip_log
525 -G
526 --no-gzip
527 Use gzip compression when writing the log. This option implies -L.
528 The .gz prefix is added to log file name for you
529
530 --log
531 -L
532 --no-log
533 Turn on logging
534
535 --log-dir ARG
536 --log-dir=ARG
537 --no-log-dir
538 Specify a log directory. Will fall back to the system temp dir.
539
540 --log-file ARG
541 --log-file=ARG
542 -F ARG
543 -F=ARG
544 --no-log-file
545 Specify the name of the log file. This option implies -L.
546
547 --log-file-format ARG
548 --log-file-format=ARG
549 --lff ARG
550 --lff=ARG
551 --no-log-file-format
552 Specify the format for automatically-generated log files.
553 Overridden by --log-file, if given. This option implies -L
554 (Default: \$YATH_LOG_FILE_FORMAT, if that is set, or else
555 "%!P%Y-%m-%d~%H:%M:%S~%!U~%!p.jsonl"). This is a string in which
556 percent-escape sequences will be replaced as per POSIX::strftime.
557 The following special escape sequences are also replaced: (%!P :
558 Project name followed by a ~, if a project is defined, otherwise
559 empty string) (%!U : the unique test run ID) (%!p : the process ID)
560 (%!S : the number of seconds since local midnight UTC)
561
562 Can also be set with the following environment variables:
563 "YATH_LOG_FILE_FORMAT", "TEST2_HARNESS_LOG_FORMAT"
564
565 Notification Options
566
567 --notify-email foo@example.com
568 --no-notify-email
569 Email the test results to the specified email address(es)
570
571 Can be specified multiple times
572
573 --notify-email-fail foo@example.com
574 --no-notify-email-fail
575 Email failing results to the specified email address(es)
576
577 Can be specified multiple times
578
579 --notify-email-from foo@example.com
580 --no-notify-email-from
581 If any email is sent, this is who it will be from
582
583 --notify-email-owner
584 --no-notify-email-owner
585 Email the owner of broken tests files upon failure. Add `# HARNESS-
586 META-OWNER foo@example.com` to the top of a test file to give it an
587 owner
588
589 --notify-no-batch-email
590 --no-notify-no-batch-email
591 Usually owner failures are sent as a single batch at the end of
592 testing. Toggle this to send failures as they happen.
593
594 --notify-no-batch-slack
595 --no-notify-no-batch-slack
596 Usually owner failures are sent as a single batch at the end of
597 testing. Toggle this to send failures as they happen.
598
599 --notify-slack '#foo'
600 --notify-slack '@bar'
601 --no-notify-slack
602 Send results to a slack channel and/or user
603
604 Can be specified multiple times
605
606 --notify-slack-fail '#foo'
607 --notify-slack-fail '@bar'
608 --no-notify-slack-fail
609 Send failing results to a slack channel and/or user
610
611 Can be specified multiple times
612
613 --notify-slack-owner
614 --no-notify-slack-owner
615 Send slack notifications to the slack channels/users listed in test
616 meta-data when tests fail.
617
618 --notify-slack-url https://hooks.slack.com/...
619 --no-notify-slack-url
620 Specify an API endpoint for slack webhook integrations
621
622 --notify-text ARG
623 --notify-text=ARG
624 --message ARG
625 --message=ARG
626 --msg ARG
627 --msg=ARG
628 --no-notify-text
629 Add a custom text snippet to email/slack notifications
630
631 --notify-text-module ARG
632 --notify-text-module=ARG
633 --message_module ARG
634 --message_module=ARG
635 --no-notify-text-module
636 Use the specified module to generate messages for emails and/or
637 slack.
638
639 Run Options
640
641 --author-testing
642 -A
643 --no-author-testing
644 This will set the AUTHOR_TESTING environment to true
645
646 --dbi-profiling
647 --no-dbi-profiling
648 Use Test2::Plugin::DBIProfile to collect database profiling data
649
650 --env-var VAR=VAL
651 -EVAR=VAL
652 -E VAR=VAL
653 --no-env-var
654 Set environment variables to set when each test is run.
655
656 Can be specified multiple times
657
658 --event-uuids
659 --uuids
660 --no-event-uuids
661 Use Test2::Plugin::UUID inside tests (default: on)
662
663 --fields name:details
664 --fields JSON_STRING
665 -f name:details
666 -f JSON_STRING
667 --no-fields
668 Add custom data to the harness run
669
670 Can be specified multiple times
671
672 --input ARG
673 --input=ARG
674 --no-input
675 Input string to be used as standard input for ALL tests. See also:
676 --input-file
677
678 --input-file ARG
679 --input-file=ARG
680 --no-input-file
681 Use the specified file as standard input to ALL tests
682
683 --io-events
684 --no-io-events
685 Use Test2::Plugin::IOEvents inside tests to turn all prints into
686 test2 events (default: off)
687
688 --link 'https://travis.work/builds/42'
689 --link 'https://jenkins.work/job/42'
690 --link 'https://buildbot.work/builders/foo/builds/42'
691 --no-link
692 Provide one or more links people can follow to see more about this
693 run.
694
695 Can be specified multiple times
696
697 --load ARG
698 --load=ARG
699 --load-module ARG
700 --load-module=ARG
701 -m ARG
702 -m=ARG
703 --no-load
704 Load a module in each test (after fork). The "import" method is not
705 called.
706
707 Can be specified multiple times
708
709 --load-import Module
710 --load-import Module=import_arg1,arg2,...
711 --loadim Module
712 --loadim Module=import_arg1,arg2,...
713 -M Module
714 -M Module=import_arg1,arg2,...
715 --no-load-import
716 Load a module in each test (after fork). Import is called.
717
718 Can be specified multiple times. If the same key is listed multiple
719 times the value lists will be appended together.
720
721 --mem-usage
722 --no-mem-usage
723 Use Test2::Plugin::MemUsage inside tests (default: on)
724
725 --retry ARG
726 --retry=ARG
727 -r ARG
728 -r=ARG
729 --no-retry
730 Run any jobs that failed a second time. NOTE: --retry=1 means
731 failing tests will be attempted twice!
732
733 --retry-isolated
734 --retry-iso
735 --no-retry-isolated
736 If true then any job retries will be done in isolation (as though
737 -j1 was set)
738
739 --run-id
740 --id
741 --no-run-id
742 Set a specific run-id. (Default: a UUID)
743
744 --test-args ARG
745 --test-args=ARG
746 --no-test-args
747 Arguments to pass in as @ARGV for all tests that are run. These can
748 be provided easier using the '::' argument separator.
749
750 Can be specified multiple times
751
752 --stream
753 --no-stream
754 Use the stream formatter (default is on)
755
756 --tap
757 --TAP
758 ----no-stream
759 --no-tap
760 The TAP format is lossy and clunky. Test2::Harness normally uses a
761 newer streaming format to receive test results. There are
762 old/legacy tests where this causes problems, in which case setting
763 --TAP or --no-stream can help.
764
765 Runner Options
766
767 --abort-on-bail
768 --no-abort-on-bail
769 Abort all testing if a bail-out is encountered (default: on)
770
771 --blib
772 -b
773 --no-blib
774 (Default: include if it exists) Include 'blib/lib' and 'blib/arch'
775 in your module path
776
777 --cover
778 --cover=-silent,1,+ignore,^t/,+ignore,^t2/,+ignore,^xt,+ignore,^test.pl
779 --no-cover
780 Use Devel::Cover to calculate test coverage. This disables forking.
781 If no args are specified the following are used:
782 -silent,1,+ignore,^t/,+ignore,^t2/,+ignore,^xt,+ignore,^test.pl
783
784 --dump-depmap
785 --no-dump-depmap
786 When using staged preload, dump the depmap for each stage as json
787 files
788
789 --event-timeout SECONDS
790 --et SECONDS
791 --no-event-timeout
792 Kill test if no output is received within timeout period. (Default:
793 60 seconds). Add the "# HARNESS-NO-TIMEOUT" comment to the top of a
794 test file to disable timeouts on a per-test basis. This prevents a
795 hung test from running forever.
796
797 --include ARG
798 --include=ARG
799 -I ARG
800 -I=ARG
801 --no-include
802 Add a directory to your include paths
803
804 Can be specified multiple times
805
806 --job-count 4
807 --job-count 8:2
808 --jobs 4
809 --jobs 8:2
810 -j4
811 -j8:2
812 --no-job-count
813 Set the number of concurrent jobs to run. Add a :# if you also wish
814 to designate multiple slots per test. 8:2 means 8 slots, but each
815 test gets 2 slots, so 4 tests run concurrently. Tests can find
816 their concurrency assignemnt in the "T2_HARNESS_MY_JOB_CONCURRENCY"
817 environment variable.
818
819 Can also be set with the following environment variables:
820 "YATH_JOB_COUNT", "T2_HARNESS_JOB_COUNT", "HARNESS_JOB_COUNT"
821
822 --lib
823 -l
824 --no-lib
825 (Default: include if it exists) Include 'lib' in your module path
826
827 --nytprof
828 --no-nytprof
829 Use Devel::NYTProf on tests. This will set addpid=1 for you. This
830 works with or without fork.
831
832 --post-exit-timeout SECONDS
833 --pet SECONDS
834 --no-post-exit-timeout
835 Stop waiting post-exit after the timeout period. (Default: 15
836 seconds) Some tests fork and allow the parent to exit before
837 writing all their output. If Test2::Harness detects an incomplete
838 plan after the test exits it will monitor for more events until the
839 timeout period. Add the "# HARNESS-NO-TIMEOUT" comment to the top
840 of a test file to disable timeouts on a per-test basis.
841
842 --preload-threshold ARG
843 --preload-threshold=ARG
844 --Pt ARG
845 --Pt=ARG
846 -W ARG
847 -W=ARG
848 --no-preload-threshold
849 Only do preload if at least N tests are going to be run. In some
850 cases a full preload takes longer than simply running the tests,
851 this lets you specify a minimum number of test jobs that will be
852 run for preload to happen. This has no effect for a persistent
853 runner. The default is 0, and it means always preload.
854
855 --preloads ARG
856 --preloads=ARG
857 --preload ARG
858 --preload=ARG
859 -P ARG
860 -P=ARG
861 --no-preloads
862 Preload a module before running tests
863
864 Can be specified multiple times
865
866 --resource Port
867 --resource +Test2::Harness::Runner::Resource::Port
868 -R Port
869 --no-resource
870 Use a resource module to assign resource assignments to individual
871 tests
872
873 Can be specified multiple times
874
875 --runner-id ARG
876 --runner-id=ARG
877 --no-runner-id
878 Runner ID (usually a generated uuid)
879
880 --shared-jobs-config .sharedjobslots.yml
881 --shared-jobs-config relative/path/.sharedjobslots.yml
882 --shared-jobs-config /absolute/path/.sharedjobslots.yml
883 --no-shared-jobs-config
884 Where to look for a shared slot config file. If a filename with no
885 path is provided yath will search the current and all parent
886 directories for the name.
887
888 --slots-per-job 2
889 -x2
890 --no-slots-per-job
891 This sets the number of slots each job will use (default 1). This
892 is normally set by the ':#' in '-j#:#'.
893
894 Can also be set with the following environment variables:
895 "T2_HARNESS_JOB_CONCURRENCY"
896
897 --switch ARG
898 --switch=ARG
899 -S ARG
900 -S=ARG
901 --no-switch
902 Pass the specified switch to perl for each test. This is not
903 compatible with preload.
904
905 Can be specified multiple times
906
907 --tlib
908 --no-tlib
909 (Default: off) Include 't/lib' in your module path
910
911 --unsafe-inc
912 --no-unsafe-inc
913 perl is removing '.' from @INC as a security concern. This option
914 keeps things from breaking for now.
915
916 Can also be set with the following environment variables:
917 "PERL_USE_UNSAFE_INC"
918
919 --use-fork
920 --fork
921 --no-use-fork
922 (default: on, except on windows) Normally tests are run by forking,
923 which allows for features like preloading. This will turn off the
924 behavior globally (which is not compatible with preloading). This
925 is slower, it is better to tag misbehaving tests with the '#
926 HARNESS-NO-PRELOAD' comment in their header to disable forking only
927 for those tests.
928
929 Can also be set with the following environment variables:
930 "!T2_NO_FORK", "T2_HARNESS_FORK", "!T2_HARNESS_NO_FORK",
931 "YATH_FORK", "!YATH_NO_FORK"
932
933 --use-timeout
934 --timeout
935 --no-use-timeout
936 (default: on) Enable/disable timeouts
937
938 Workspace Options
939
940 --clear
941 -C
942 --no-clear
943 Clear the work directory if it is not already empty
944
945 --tmp-dir ARG
946 --tmp-dir=ARG
947 --tmpdir ARG
948 --tmpdir=ARG
949 -t ARG
950 -t=ARG
951 --no-tmp-dir
952 Use a specific temp directory (Default: use system temp dir)
953
954 Can also be set with the following environment variables:
955 "T2_HARNESS_TEMP_DIR", "YATH_TEMP_DIR", "TMPDIR", "TEMPDIR",
956 "TMP_DIR", "TEMP_DIR"
957
958 --workdir ARG
959 --workdir=ARG
960 -w ARG
961 -w=ARG
962 --no-workdir
963 Set the work directory (Default: new temp directory)
964
965 Can also be set with the following environment variables:
966 "T2_WORKDIR", "YATH_WORKDIR"
967
968 YathUI Options
969
970 --yathui-api-key ARG
971 --yathui-api-key=ARG
972 --no-yathui-api-key
973 Yath-UI API key. This is not necessary if your Yath-UI instance is
974 set to single-user
975
976 --yathui-coverage
977 --no-yathui-coverage
978 Poll coverage data from Yath-UI to determine what tests should be
979 run for changed files
980
981 --yathui-db
982 --no-yathui-db
983 Add the YathUI DB renderer in addition to other renderers
984
985 --yathui-durations
986 --no-yathui-durations
987 Poll duration data from Yath-UI to help order tests efficiently
988
989 --yathui-grace
990 --no-yathui-grace
991 If yath cannot connect to yath-ui it normally throws an error, use
992 this to make it fail gracefully. You get a warning, but things keep
993 going.
994
995 --yathui-long-duration 10
996 --no-yathui-long-duration
997 Minimum duration length (seconds) before a test goes from MEDIUM to
998 LONG
999
1000 --yathui-medium-duration 5
1001 --no-yathui-medium-duration
1002 Minimum duration length (seconds) before a test goes from SHORT to
1003 MEDIUM
1004
1005 --yathui-mode summary
1006 --yathui-mode qvf
1007 --yathui-mode qvfd
1008 --yathui-mode complete
1009 --no-yathui-mode
1010 Set the upload mode (default 'qvfd')
1011
1012 --yathui-only
1013 --no-yathui-only
1014 Only use the YathUI renderer
1015
1016 --yathui-only-db
1017 --no-yathui-only-db
1018 Only use the YathUI DB renderer
1019
1020 --yathui-port 8080
1021 --no-yathui-port
1022 Port to use when running a local server
1023
1024 --yathui-port-command get_port.sh
1025 --yathui-port-command get_port.sh --pid $$
1026 --no-yathui-port-command
1027 Use a command to get a port number. "$$" will be replaced with the
1028 PID of the yath process
1029
1030 --yathui-project ARG
1031 --yathui-project=ARG
1032 --no-yathui-project
1033 The Yath-UI project for your test results
1034
1035 --yathui-render
1036 --no-yathui-render
1037 Add the YathUI renderer in addition to other renderers
1038
1039 --yathui-resources
1040 --yathui-resources=5
1041 --no-yathui-resources
1042 Send resource info (for supported resources) to yathui at the
1043 specified interval in seconds (5 if not specified)
1044
1045 --yathui-retry
1046 --no-yathui-retry
1047 How many times to try an operation before giving up
1048
1049 Can be specified multiple times
1050
1051 --yathui-schema PostgreSQL
1052 --yathui-schema MySQL
1053 --yathui-schema MySQL56
1054 --no-yathui-schema
1055 What type of DB/schema to use when using a temporary database
1056
1057 --yathui-upload
1058 --no-yathui-upload
1059 Upload the log to Yath-UI
1060
1061 --yathui-url http://my-yath-ui.com/...
1062 --uri http://my-yath-ui.com/...
1063 --no-yathui-url
1064 Yath-UI url
1065
1066 --yathui-user ARG
1067 --yathui-user=ARG
1068 --no-yathui-user
1069 Username to attach to the data sent to the db
1070
1071 --yathui-db-buffering none
1072 --yathui-db-buffering job
1073 --yathui-db-buffering diag
1074 --yathui-db-buffering run
1075 --no-yathui-db-buffering
1076 Type of buffering to use, if "none" then events are written to the
1077 db one at a time, which is SLOW
1078
1079 --yathui-db-config ARG
1080 --yathui-db-config=ARG
1081 --no-yathui-db-config
1082 Module that implements 'MODULE->yath_ui_config(%params)' which
1083 should return a Test2::Harness::UI::Config instance.
1084
1085 --yathui-db-coverage
1086 --no-yathui-db-coverage
1087 Pull coverage data directly from the database (default: off)
1088
1089 --yathui-db-driver Pg
1090 --yathui-db-drivermysql
1091 --yathui-db-driverMariaDB
1092 --no-yathui-db-driver
1093 DBI Driver to use
1094
1095 --yathui-db-dsn ARG
1096 --yathui-db-dsn=ARG
1097 --no-yathui-db-dsn
1098 DSN to use when connecting to the db
1099
1100 --yathui-db-duration-limit ARG
1101 --yathui-db-duration-limit=ARG
1102 --no-yathui-db-duration-limit
1103 Limit the number of runs to look at for durations data (default:
1104 10)
1105
1106 --yathui-db-durations
1107 --no-yathui-db-durations
1108 Pull duration data directly from the database (default: off)
1109
1110 --yathui-db-flush-interval 2
1111 --yathui-db-flush-interval 1.5
1112 --no-yathui-db-flush-interval
1113 When buffering DB writes, force a flush when an event is recieved
1114 at least N seconds after the last flush.
1115
1116 --yathui-db-host ARG
1117 --yathui-db-host=ARG
1118 --no-yathui-db-host
1119 hostname to use when connecting to the db
1120
1121 --yathui-db-name ARG
1122 --yathui-db-name=ARG
1123 --no-yathui-db-name
1124 Name of the database to use for yathui
1125
1126 --yathui-db-pass ARG
1127 --yathui-db-pass=ARG
1128 --no-yathui-db-pass
1129 Password to use when connecting to the db
1130
1131 --yathui-db-port ARG
1132 --yathui-db-port=ARG
1133 --no-yathui-db-port
1134 port to use when connecting to the db
1135
1136 --yathui-db-publisher ARG
1137 --yathui-db-publisher=ARG
1138 --no-yathui-db-publisher
1139 When using coverage or duration data, only use data uploaded by
1140 this user
1141
1142 --yathui-db-socket ARG
1143 --yathui-db-socket=ARG
1144 --no-yathui-db-socket
1145 socket to use when connecting to the db
1146
1147 --yathui-db-user ARG
1148 --yathui-db-user=ARG
1149 --no-yathui-db-user
1150 Username to use when connecting to the db
1151
1153 The source code repository for Test2-Harness can be found at
1154 http://github.com/Test-More/Test2-Harness/.
1155
1157 Chad Granum <exodist@cpan.org>
1158
1160 Chad Granum <exodist@cpan.org>
1161
1163 Copyright 2023 Chad Granum <exodist7@gmail.com>.
1164
1165 This program is free software; you can redistribute it and/or modify it
1166 under the same terms as Perl itself.
1167
1168 See http://dev.perl.org/licenses/
1169
1170
1171
1172perl v5.38.0 2023-10-04 App::Yath::Command::projects(3)