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