Check for drift with plune verify
plune verify sets the project’s automated cases in Plune against the Playwright tests your
code has now, and prints what each side has that the other lacks. It only reads: nothing is written
to Plune and no id is added to your source. Playwright is the only framework it understands.
What it compares
Section titled “What it compares”The tests come from playwright test --list --reporter=json, which plune verify runs for you (or
reads from a file, see --from below). Each test is matched to a case in this order:
- By the id it names: a
PluneIdannotation, or@P<id>in its title. - Otherwise by its
path-titlekey, built the way the Playwright reporter builds it:file#describe#…#title, with the file as Playwright titles it and forward slashes.
Only cases of type automated count. A case in the deprecated state is left out: retiring a case
is a person’s decision, so it is never reported as drift.
The two sides
Section titled “The two sides”| Side | Meaning |
|---|---|
| In Plune, not in the code | A case no test in the code matches any more. It is either already detached (Plune has noticed), or in another state, in which case a full run would detach it. |
| In the code, not in Plune | A test with no case yet. It is listed by its path-title key. |
Seeing both before a run means the drift shows up before a test leaves a regression, not after.
A case that is detached is one the platform has marked as having no test behind it.
The text report prints these lines, then a count (N matched. Nothing was changed.), or
No drift: N case(s) match the code. when both sides are empty:
In Plune, not in the code (2): gone removed test [active — a full run would detach it] old older test [already detached]In the code, not in Plune (1): nested/cart.spec.ts#cart#inner#adds @Ptc-9| Flag | Effect |
|---|---|
--from <file> | Read a saved playwright test --list --reporter=json instead of running Playwright. |
--playwright-config <path> | Passed to playwright test --config. |
--json | Print the report as JSON instead of text. |
--fail-on-drift | Exit 1 when either side has something the other lacks. |
Like pull and push, it needs a saved login or PLUNE_TOKEN.
Exit codes
Section titled “Exit codes”| Code | When |
|---|---|
0 | The report was printed (also when there is drift, unless --fail-on-drift is set). |
1 | --fail-on-drift and either side differs, or the platform could not be reached or answered with an error. |
2 | Not logged in, a rejected token, a listing file that cannot be read, a listing that is not JSON, or Playwright’s listing failed. |