1App::Yath::Command::staUrste(r3)Contributed Perl DocumenAtpapt:i:oYnath::Command::start(3)
2
3
4
6 App::Yath::Command::start - Start the persistent test runner
7
9 This command is used to start a persistant instance of yath. A
10 persistant instance is useful because it allows you to preload modules
11 in advance, reducing start time for any tests you decide to run as you
12 work.
13
14 A running instance will watch for changes to any preloaded files, and
15 restart itself if anything changes. Changed files are blacklisted for
16 subsequent reloads so that reloading is not a frequent occurence when
17 editing the same file over and over again.
18
20 $ yath [YATH OPTIONS] start [COMMAND OPTIONS]
21
22 YATH OPTIONS
23 Developer
24
25 --dev-lib
26 --dev-lib=lib
27 -D
28 -D=lib
29 -Dlib
30 --no-dev-lib
31 Add paths to @INC before loading ANYTHING. This is what you use if
32 you are developing yath or yath plugins to make sure the yath
33 script finds the local code instead of the installed versions of
34 the same code. You can provide an argument (-Dfoo) to provide a
35 custom path, or you can just use -D without and arg to add lib,
36 blib/lib and blib/arch.
37
38 Can be specified multiple times
39
40 Environment
41
42 --persist-dir ARG
43 --persist-dir=ARG
44 --no-persist-dir
45 Where to find persistence files.
46
47 --persist-file ARG
48 --persist-file=ARG
49 --pfile ARG
50 --pfile=ARG
51 --no-persist-file
52 Where to find the persistence file. The default is
53 /{system-tempdir}/project-yath-persist.json. If no project is
54 specified then it will fall back to the current directory. If the
55 current directory is not writable it will default to
56 /tmp/yath-persist.json which limits you to one persistent runner on
57 your system.
58
59 --project ARG
60 --project=ARG
61 --project-name ARG
62 --project-name=ARG
63 --no-project
64 This lets you provide a label for your current project/codebase.
65 This is best used in a .yath.rc file. This is necessary for a
66 persistent runner.
67
68 Help and Debugging
69
70 --show-opts
71 --no-show-opts
72 Exit after showing what yath thinks your options mean
73
74 --version
75 -V
76 --no-version
77 Exit after showing a helpful usage message
78
79 Plugins
80
81 --no-scan-plugins
82 --no-no-scan-plugins
83 Normally yath scans for and loads all App::Yath::Plugin::* modules
84 in order to bring in command-line options they may provide. This
85 flag will disable that. This is useful if you have a naughty plugin
86 that is loading other modules when it should not.
87
88 --plugins PLUGIN
89 --plugins +App::Yath::Plugin::PLUGIN
90 --plugins PLUGIN=arg1,arg2,...
91 --plugin PLUGIN
92 --plugin +App::Yath::Plugin::PLUGIN
93 --plugin PLUGIN=arg1,arg2,...
94 -pPLUGIN
95 --no-plugins
96 Load a yath plugin.
97
98 Can be specified multiple times
99
100 COMMAND OPTIONS
101 Collector Options
102
103 --max-open-jobs 18
104 --no-max-open-jobs
105 Maximum number of jobs a collector can process at a time, if more
106 jobs are pending their output will be delayed until the earlier
107 jobs have been processed. (Default: double the -j value)
108
109 --max-poll-events 1000
110 --no-max-poll-events
111 Maximum number of events to poll from a job before jumping to the
112 next job. (Default: 1000)
113
114 Cover Options
115
116 --cover-aggregator ByTest
117 --cover-aggregator ByRun
118 --cover-aggregator +Custom::Aggregator
119 --cover-agg ByTest
120 --cover-agg ByRun
121 --cover-agg +Custom::Aggregator
122 --no-cover-aggregator
123 Choose a custom aggregator subclass
124
125 --cover-class ARG
126 --cover-class=ARG
127 --no-cover-class
128 Choose a Test2::Plugin::Cover subclass
129
130 --cover-dirs ARG
131 --cover-dirs=ARG
132 --cover-dir ARG
133 --cover-dir=ARG
134 --no-cover-dirs
135 NO DESCRIPTION - FIX ME
136
137 Can be specified multiple times
138
139 --cover-exclude-private
140 --no-cover-exclude-private
141 --cover-files
142 --no-cover-files
143 Use Test2::Plugin::Cover to collect coverage data for what files
144 are touched by what tests. Unlike Devel::Cover this has very little
145 performance impact (About 4% difference)
146
147 --cover-from path/to/log.jsonl
148 --cover-from http://example.com/coverage
149 --cover-from path/to/coverage.jsonl
150 --no-cover-from
151 This can be a test log, a coverage dump (old style json or new
152 jsonl format), or a url to any of the previous. Tests will not be
153 run if the file/url is invalid.
154
155 --cover-from-type json
156 --cover-from-type jsonl
157 --cover-from-type log
158 --no-cover-from-type
159 File type for coverage source. Usually it can be detected, but when
160 it cannot be you should specify. "json" is old style single-blob
161 coverage data, "jsonl" is the new by-test style, "log" is a logfile
162 from a previous run.
163
164 --cover-manager My::Coverage::Manager
165 --no-cover-manager
166 Coverage 'from' manager to use when coverage data does not provide
167 one
168
169 --cover-maybe-from path/to/log.jsonl
170 --cover-maybe-from http://example.com/coverage
171 --cover-maybe-from path/to/coverage.jsonl
172 --no-cover-maybe-from
173 This can be a test log, a coverage dump (old style json or new
174 jsonl format), or a url to any of the previous. Tests will coninue
175 if even if the coverage file/url is invalid.
176
177 --cover-maybe-from-type json
178 --cover-maybe-from-type jsonl
179 --cover-maybe-from-type log
180 --no-cover-maybe-from-type
181 Same as "from_type" but for "maybe_from". Defaults to "from_type"
182 if that is specified, otherwise auto-detect
183
184 --cover-metrics
185 --no-cover-metrics
186 --cover-types ARG
187 --cover-types=ARG
188 --cover-type ARG
189 --cover-type=ARG
190 --no-cover-types
191 NO DESCRIPTION - FIX ME
192
193 Can be specified multiple times
194
195 --cover-write
196 --cover-write=coverage.jsonl
197 --cover-write=coverage.json
198 --no-cover-write
199 Create a json or jsonl file of all coverage data seen during the
200 run (This implies --cover-files).
201
202 Git Options
203
204 --git-change-base master
205 --git-change-base HEAD^
206 --git-change-base df22abe4
207 --no-git-change-base
208 Find files changed by all commits in the current branch from most
209 recent stopping when a commit is found that is also present in the
210 history of the branch/commit specified as the change base.
211
212 Help and Debugging
213
214 --dummy
215 -d
216 --no-dummy
217 Dummy run, do not actually execute anything
218
219 Can also be set with the following environment variables:
220 "T2_HARNESS_DUMMY"
221
222 --help
223 -h
224 --no-help
225 exit after showing help information
226
227 --interactive
228 -i
229 --no-interactive
230 Use interactive mode, 1 test at a time, stdin forwarded to it
231
232 --keep-dirs
233 --keep_dir
234 -k
235 --no-keep-dirs
236 Do not delete directories when done. This is useful if you want to
237 inspect the directories used for various commands.
238
239 --procname-prefix ARG
240 --procname-prefix=ARG
241 --no-procname-prefix
242 Add a prefix to all proc names (as seen by ps).
243
244 Persistent Runner Options
245
246 --quiet
247 -q
248 --no-quiet
249 Be very quiet.
250
251 Can be specified multiple times
252
253 --reload
254 -r
255 --no-reload
256 Attempt to reload modified modules in-place, restarting entire
257 stages only when necessary.
258
259 --restrict-reload
260 --restrict-reload=path
261 --no-restrict-reload
262 Only reload modules under the specified path, if no path is
263 specified look at anything under the .yath.rc path, or the current
264 working directory.
265
266 Can be specified multiple times
267
268 Runner Options
269
270 --abort-on-bail
271 --no-abort-on-bail
272 Abort all testing if a bail-out is encountered (default: on)
273
274 --blib
275 -b
276 --no-blib
277 (Default: include if it exists) Include 'blib/lib' and 'blib/arch'
278 in your module path
279
280 --cover
281 --cover=-silent,1,+ignore,^t/,+ignore,^t2/,+ignore,^xt,+ignore,^test.pl
282 --no-cover
283 Use Devel::Cover to calculate test coverage. This disables forking.
284 If no args are specified the following are used:
285 -silent,1,+ignore,^t/,+ignore,^t2/,+ignore,^xt,+ignore,^test.pl
286
287 --daemon
288 --no-daemon
289 Start the runner as a daemon (Default: True)
290
291 --dump-depmap
292 --no-dump-depmap
293 When using staged preload, dump the depmap for each stage as json
294 files
295
296 --event-timeout SECONDS
297 --et SECONDS
298 --no-event-timeout
299 Kill test if no output is received within timeout period. (Default:
300 60 seconds). Add the "# HARNESS-NO-TIMEOUT" comment to the top of a
301 test file to disable timeouts on a per-test basis. This prevents a
302 hung test from running forever.
303
304 --include ARG
305 --include=ARG
306 -I ARG
307 -I=ARG
308 --no-include
309 Add a directory to your include paths
310
311 Can be specified multiple times
312
313 --job-count ARG
314 --job-count=ARG
315 --jobs ARG
316 --jobs=ARG
317 -j ARG
318 -j=ARG
319 --no-job-count
320 Set the number of concurrent jobs to run
321
322 Can also be set with the following environment variables:
323 "YATH_JOB_COUNT", "T2_HARNESS_JOB_COUNT", "HARNESS_JOB_COUNT"
324
325 --lib
326 -l
327 --no-lib
328 (Default: include if it exists) Include 'lib' in your module path
329
330 --nytprof
331 --no-nytprof
332 Use Devel::NYTProf on tests. This will set addpid=1 for you. This
333 works with or without fork.
334
335 --post-exit-timeout SECONDS
336 --pet SECONDS
337 --no-post-exit-timeout
338 Stop waiting post-exit after the timeout period. (Default: 15
339 seconds) Some tests fork and allow the parent to exit before
340 writing all their output. If Test2::Harness detects an incomplete
341 plan after the test exits it will monitor for more events until the
342 timeout period. Add the "# HARNESS-NO-TIMEOUT" comment to the top
343 of a test file to disable timeouts on a per-test basis.
344
345 --preload-threshold ARG
346 --preload-threshold=ARG
347 --Pt ARG
348 --Pt=ARG
349 -W ARG
350 -W=ARG
351 --no-preload-threshold
352 Only do preload if at least N tests are going to be run. In some
353 cases a full preload takes longer than simply running the tests,
354 this lets you specify a minimum number of test jobs that will be
355 run for preload to happen. This has no effect for a persistent
356 runner. The default is 0, and it means always preload.
357
358 --preloads ARG
359 --preloads=ARG
360 --preload ARG
361 --preload=ARG
362 -P ARG
363 -P=ARG
364 --no-preloads
365 Preload a module before running tests
366
367 Can be specified multiple times
368
369 --resource Port
370 --resource +Test2::Harness::Runner::Resource::Port
371 -R Port
372 --no-resource
373 Use a resource module to assign resource assignments to individual
374 tests
375
376 Can be specified multiple times
377
378 --switch ARG
379 --switch=ARG
380 -S ARG
381 -S=ARG
382 --no-switch
383 Pass the specified switch to perl for each test. This is not
384 compatible with preload.
385
386 Can be specified multiple times
387
388 --tlib
389 --no-tlib
390 (Default: off) Include 't/lib' in your module path
391
392 --unsafe-inc
393 --no-unsafe-inc
394 perl is removing '.' from @INC as a security concern. This option
395 keeps things from breaking for now.
396
397 Can also be set with the following environment variables:
398 "PERL_USE_UNSAFE_INC"
399
400 --use-fork
401 --fork
402 --no-use-fork
403 (default: on, except on windows) Normally tests are run by forking,
404 which allows for features like preloading. This will turn off the
405 behavior globally (which is not compatible with preloading). This
406 is slower, it is better to tag misbehaving tests with the '#
407 HARNESS-NO-PRELOAD' comment in their header to disable forking only
408 for those tests.
409
410 Can also be set with the following environment variables:
411 "!T2_NO_FORK", "T2_HARNESS_FORK", "!T2_HARNESS_NO_FORK",
412 "YATH_FORK", "!YATH_NO_FORK"
413
414 --use-timeout
415 --timeout
416 --no-use-timeout
417 (default: on) Enable/disable timeouts
418
419 Workspace Options
420
421 --clear
422 -C
423 --no-clear
424 Clear the work directory if it is not already empty
425
426 --tmp-dir ARG
427 --tmp-dir=ARG
428 --tmpdir ARG
429 --tmpdir=ARG
430 -t ARG
431 -t=ARG
432 --no-tmp-dir
433 Use a specific temp directory (Default: use system temp dir)
434
435 Can also be set with the following environment variables:
436 "T2_HARNESS_TEMP_DIR", "YATH_TEMP_DIR", "TMPDIR", "TEMPDIR",
437 "TMP_DIR", "TEMP_DIR"
438
439 --workdir ARG
440 --workdir=ARG
441 -w ARG
442 -w=ARG
443 --no-workdir
444 Set the work directory (Default: new temp directory)
445
446 Can also be set with the following environment variables:
447 "T2_WORKDIR", "YATH_WORKDIR"
448
449 YathUI Options
450
451 --yathui-api-key ARG
452 --yathui-api-key=ARG
453 --no-yathui-api-key
454 Yath-UI API key. This is not necessary if your Yath-UI instance is
455 set to single-user
456
457 --yathui-db
458 --no-yathui-db
459 Add the YathUI DB renderer in addition to other renderers
460
461 --yathui-grace
462 --no-yathui-grace
463 If yath cannot connect to yath-ui it normally throws an error, use
464 this to make it fail gracefully. You get a warning, but things keep
465 going.
466
467 --yathui-long-duration 10
468 --no-yathui-long-duration
469 Minimum duration length (seconds) before a test goes from MEDIUM to
470 LONG
471
472 --yathui-medium-duration 5
473 --no-yathui-medium-duration
474 Minimum duration length (seconds) before a test goes from SHORT to
475 MEDIUM
476
477 --yathui-mode summary
478 --yathui-mode qvf
479 --yathui-mode qvfd
480 --yathui-mode complete
481 --no-yathui-mode
482 Set the upload mode (default 'qvfd')
483
484 --yathui-only
485 --no-yathui-only
486 Only use the YathUI renderer
487
488 --yathui-only-db
489 --no-yathui-only-db
490 Only use the YathUI DB renderer
491
492 --yathui-port 8080
493 --no-yathui-port
494 Port to use when running a local server
495
496 --yathui-port-command get_port.sh
497 --yathui-port-command get_port.sh --pid $$
498 --no-yathui-port-command
499 Use a command to get a port number. "$$" will be replaced with the
500 PID of the yath process
501
502 --yathui-project ARG
503 --yathui-project=ARG
504 --no-yathui-project
505 The Yath-UI project for your test results
506
507 --yathui-render
508 --no-yathui-render
509 Add the YathUI renderer in addition to other renderers
510
511 --yathui-retry
512 --no-yathui-retry
513 How many times to try an operation before giving up
514
515 Can be specified multiple times
516
517 --yathui-schema PostgreSQL
518 --yathui-schema MySQL
519 --yathui-schema MySQL56
520 --no-yathui-schema
521 What type of DB/schema to use when using a temporary database
522
523 --yathui-url http://my-yath-ui.com/...
524 --uri http://my-yath-ui.com/...
525 --no-yathui-url
526 Yath-UI url
527
528 --yathui-user ARG
529 --yathui-user=ARG
530 --no-yathui-user
531 Username to attach to the data sent to the db
532
533 --yathui-db-buffering none
534 --yathui-db-buffering job
535 --yathui-db-buffering diag
536 --yathui-db-buffering run
537 --no-yathui-db-buffering
538 Type of buffering to use, if "none" then events are written to the
539 db one at a time, which is SLOW
540
541 --yathui-db-config ARG
542 --yathui-db-config=ARG
543 --no-yathui-db-config
544 Module that implements 'MODULE->yath_ui_config(%params)' which
545 should return a Test2::Harness::UI::Config instance.
546
547 --yathui-db-coverage
548 --no-yathui-db-coverage
549 Pull coverage data directly from the database (default: off)
550
551 --yathui-db-driver Pg
552 --yathui-db-drivermysql
553 --yathui-db-driverMariaDB
554 --no-yathui-db-driver
555 DBI Driver to use
556
557 --yathui-db-dsn ARG
558 --yathui-db-dsn=ARG
559 --no-yathui-db-dsn
560 DSN to use when connecting to the db
561
562 --yathui-db-duration-limit ARG
563 --yathui-db-duration-limit=ARG
564 --no-yathui-db-duration-limit
565 Limit the number of runs to look at for durations data (default:
566 10)
567
568 --yathui-db-durations
569 --no-yathui-db-durations
570 Pull duration data directly from the database (default: off)
571
572 --yathui-db-flush-interval 2
573 --yathui-db-flush-interval 1.5
574 --no-yathui-db-flush-interval
575 When buffering DB writes, force a flush when an event is recieved
576 at least N seconds after the last flush.
577
578 --yathui-db-host ARG
579 --yathui-db-host=ARG
580 --no-yathui-db-host
581 hostname to use when connecting to the db
582
583 --yathui-db-name ARG
584 --yathui-db-name=ARG
585 --no-yathui-db-name
586 Name of the database to use for yathui
587
588 --yathui-db-pass ARG
589 --yathui-db-pass=ARG
590 --no-yathui-db-pass
591 Password to use when connecting to the db
592
593 --yathui-db-port ARG
594 --yathui-db-port=ARG
595 --no-yathui-db-port
596 port to use when connecting to the db
597
598 --yathui-db-publisher ARG
599 --yathui-db-publisher=ARG
600 --no-yathui-db-publisher
601 When using coverage or duration data, only use data uploaded by
602 this user
603
604 --yathui-db-socket ARG
605 --yathui-db-socket=ARG
606 --no-yathui-db-socket
607 socket to use when connecting to the db
608
609 --yathui-db-user ARG
610 --yathui-db-user=ARG
611 --no-yathui-db-user
612 Username to use when connecting to the db
613
615 The source code repository for Test2-Harness can be found at
616 http://github.com/Test-More/Test2-Harness/.
617
619 Chad Granum <exodist@cpan.org>
620
622 Chad Granum <exodist@cpan.org>
623
625 Copyright 2022 Chad Granum <exodist7@gmail.com>.
626
627 This program is free software; you can redistribute it and/or modify it
628 under the same terms as Perl itself.
629
630 See http://dev.perl.org/licenses/
631
632
633
634perl v5.36.0 2022-09-08 App::Yath::Command::start(3)