dev test
Run the repository's tests, whole or as selected by module, path, tier or change
- Command version
0.0.0- Command configuration
dev-tool:dev.test@0.0.0
Arguments
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
--modules | list[string] | No | [] | Optional module namesRepeatable |
--paths | list[string] | No | [] | Paths to narrow the run to; combinable with --modules to narrow within the selected modules, and rejected when the adapter cannot narrowRepeatable |
--select | string one of all, affected | No | "all" | Which of what the command covers this run runs. all, the default, is the whole of it. affected is only the tests a change reaches: the modules owning what git reports as changed against HEAD, untracked files included, and every module that depends on one of them through any kind of edge. A changed path no module owns, or a module the dependency graph could not analyze, runs the whole suite instead, and no change at all runs nothing. A change inertPaths names is no change, and a selection holding no directory the adapter keeps tests in runs nothing. A run naming what it covers with --modules or --paths runs that instead, so a repository may state this as its default. Refused with --recurse-mode full. Under --recurse each pinned repository selects from its own changes and from the packages changed anywhere else in the tree, which this run works out and hands it |
--changed-coordinates | list[string] | No | [] | Packages changed outside this repository, as namespace:name coordinates, which --select affected treats as changed modules wherever this repository's dependency graph holds one. --select affected --recurse works the set out across the tree and hands it to each pinned repository, so it is typed only to select in a repository standing alone. Refused without --select affectedRepeatable |
--since | string | No | A ref --select affected reads changes against instead of HEAD: the commit this branch left it at, so what the branch committed counts alongside what is uncommitted, and what the ref gained since does not. Under --recurse it is resolved in this repository alone: each pinned repository reads its changes against the commit this one pinned it at there, and a repository it did not pin there is changed whole. Refused without --select affected, and with --modules or --paths | |
--tier | list[string] | No | [] | The tiers of tests this run collects, by the names the repository's testTiers declares. A test says its tier by the directory it sits in inside a test directory, as the repo adapter spells it (__tests__/__integration__/ in Python), and one kept in no declared tier's is refused. Without this the run collects the tiers testTiers marks default -- unit where a repository states none of its own. A tier the repository does not declare is refused. It narrows what --select affected selects too, travels down --recurse, and does not stop a path named with --paths from running whatever tier it is inRepeatable |
--all-tiers, --no-all-tiers | boolean | No | false | Collect every tier the repository declares. Refused with --tier, which names them instead |
--ci, --no-ci | boolean | No | false | Tell the repo adapter this is a CI run. What that changes is the adapter's to say, and one may change nothing |
--recurse, --no-recurse | boolean | No | false | Run this command in every repository this one pins as a kind: repository module, as that repository's own command in its own checkout, so that repository's own configuration decides what it means. Without it the run covers this repository's own ownRoots and stops at every pinned checkout. Every repository is run even when one fails, and each failure names the repository it came from. A run narrowed with --modules or --paths crosses into nothing either way. Before the repositories are run, each one's vendored libraries are checked against their source with vendor --check, and the run is refused while any is behind, since its tests would run against what it vendored rather than what its producers hold |
--recurse-mode | string one of isolate, full | No | "isolate" | How --recurse crosses into the repositories this one pins, and read only when it does. isolate runs this command in each pinned repository's own checkout, as that repository's own command, so that repository's configuration decides what it means there and a clone standing alone gets the same answer as the tree does. full runs this repository's own tools once over the whole tree instead, as this repository's tool configuration names it, reading each pinned repository's settings in: one process rather than one per repository, which is faster for some commands and slower for others, and which leaves no repository's own configuration authoritative. Measure before choosing, and state the answer per command under argDefaults rather than typing it |
It also takes the global arguments.
Output
It answers with a AdapterOutput.