Skip to main content

The Generate Workflow

kane-cli generate is built around a simple loop: generate → refine → save → run. Each command is one turn that exits when done; you move between turns with the request id. This page walks the loop end to end. For the feature overview and option reference, see Generating test cases with AI.

1. Generate

Start with a plain-language description of what you want covered:

kane-cli generate "checkout flow on a shopping site"

kane-cli generates scenarios and cases and prints the result, ending with a request id and the exact commands to refine or save it:

✓ Generated 3 scenarios · 11 cases  (request 23271)

▸ Login
- Valid credentials [Positive]
- Wrong password [Negative]
- Empty fields [Edge]
▸ Checkout
- Guest checkout [Positive]
- Expired card [Negative]
...

Refine: kane-cli generate "<refinement>" --refine --req 23271
Save: kane-cli generate --save --req 23271

Keep the request id — every later command uses it.

Bound the size with limits when you want a tighter or broader set:

kane-cli generate "checkout flow on a shopping site" --scenario-limit 4 --per-scenario-limit 6

Add --memory to reuse relevant existing cases and avoid duplicating coverage you already have.

2. Refine

Refinement is a plain-language conversation. Each refine is a fresh command with --refine --req <id>:

kane-cli generate "also cover an expired card and an out-of-stock item" --refine --req 23271
kane-cli generate "drop the social-login scenario, focus on guest checkout" --refine --req 23271

Each refine returns the updated result. Repeat until the set looks right.

When generation asks a question

Sometimes a turn ends by asking you something instead of finishing — for example, "Which environment should these target, staging or production?" This is a normal outcome, not a failure (the command exits 0). Answer it by refining with your answer:

kane-cli generate "target staging" --refine --req 23271

(Driving this from a script or agent? Add --agent — or rely on it being auto-on when stdin is not a TTY — and read the answer-needed signal from the NDJSON, then re-invoke the same way.)

3. Save

When you are happy with the set, save it. --save writes the functional cases as _test.md files:

kane-cli generate --save --req 23271

By default this writes under <cwd>/.testmuai/tests:

.testmuai/tests/
checkout-23271/
login/
valid-credentials_test.md
wrong-password_test.md
checkout/
guest-checkout_test.md
...

Choose a different location with --out, and name the suite with --name:

kane-cli generate --save --req 23271 --out ./tests --name checkout-suite

Only functional cases are written — non-functional cases (Security, Performance, …) are part of the generated result but are not saved as runnable tests. See Saving is functional-only.

4. Run

The saved files are ordinary _test.md tests. Run any of them with testmd:

kane-cli testmd run .testmuai/tests/checkout-23271/checkout/guest-checkout_test.md

From here, everything in the testmd docs applies — replay from cache, edit steps, compose with @import, and commit the output to git.

Automating it (agents / CI)

Pass --agent (auto-on when stdin is not a TTY) to get structured NDJSON on stdout instead of the human display, so a script or coding agent can drive the loop:

kane-cli generate "checkout flow on a shopping site" --agent
kane-cli generate "add an expired-card case" --refine --req 23271 --agent
kane-cli generate --save --req 23271 --agent

Each command prints one JSON object per line; the final line is the terminal event carrying the request id, the status, and the refine/save commands to run next.

Exit codes

CodeMeaning
0Turn completed — including a turn that ended with a clarification question
1Generation failed
2Error — authentication / setup / transport, or an invalid combination of flags
3Generation stopped or cancelled
130Interrupted (Ctrl-C)

Invalid flag combinations exit 2 with a message explaining the fix — for example using --refine without --req, passing a description with --save, using --out without --save, or --req without --refine or --save.

Next steps

Test across 3000+ combinations of browsers, real devices & OS.

Book Demo

Help and Support

Related Articles