Usage guide¶
End-to-end walkthrough for a tester running an Azure DevOps test plan with tfs-test-runner.
1. Export from Azure DevOps¶
In Azure Boards / Azure Test Plans:
- Open your Test Suite or Test Plan.
- Click Export → Excel.
- Save the resulting
.xlsxsomewhere on your machine.
The exported file will have at minimum these columns: ID, Work Item Type, Title, Test Step, Step Action, Step Expected, plus optional Area Path, Assigned To, State. tfs-test-runner detects them by header name, so column order doesn't matter.
2. Generate the HTML kit¶
Open plan.html in Chrome, Edge, or Firefox.
With phase grouping¶
Create a phases.yaml that lists which case IDs belong to which phase. See examples/sample-phases.yaml. Then:
With LLM translation¶
Add--glossary glossary.yaml to teach the model what terms to keep verbatim.
With company logo¶
The logo appears at the top of each test case page in the PDF.3. Run tests in the HTML kit¶
For each case:
- Expand the case (click the header).
- For each step:
- Read Action and Expected.
- Execute the step in the system under test.
- Take a screenshot (Print Screen / Snipping Tool / OS shortcut).
- Click the step's paste-zone (it turns green = "ready to paste").
- Press Ctrl+V to attach the screenshot. Multiple screenshots per step are supported.
- Click the thumbnail to open the lightbox; type a caption and click outside to save.
- Set status: PASS / FAIL / N/A from the dropdown.
- Add a note if needed in the textarea next to the dropdown.
- Move on. State auto-saves to
localStorage(text/state) andIndexedDB(images) on every change.
Quick filters¶
The chip row in the header filters cases by status: Pending / In progress / OK / Failure. Useful when you have 100+ cases and want to focus on what's left.
Search¶
Press / to focus the search box. Matches case ID and title (case-insensitive substring).
4. Generate evidence PDFs¶
Per-case PDF (typical deliverable)¶
- Open the case.
- Click PDF deste caso in the per-case toolbar.
- In the print dialog: uncheck "Headers and footers", choose Save as PDF, click Save.
The result is the case's evidence: logo + title + screenshots in chronological order with their captions. Steps without screenshots are omitted automatically.
Full plan PDF¶
- Click PDF Geral (evidências) in the top toolbar (or press
Ctrl+P). - Wait for the cover page + every case to render.
- Uncheck "Headers and footers", save as PDF.
Includes a cover sheet with date and a summary table (cases / steps / OK / failure / pending per phase), then one page per case.
5. Backup / restore / share state¶
- Export backup (top toolbar): downloads a JSON file containing all state + image data URLs. Round-trip safe.
- Import backup: restores from the JSON file. Useful when:
- Switching machines mid-execution.
- Sharing partial work with a teammate.
- Recovering after a browser cache clear.
⚠ The backup file can be large (tens of MB) because it includes every screenshot as base64. Don't email it; use a file share.
6. Common gotchas¶
| Symptom | Likely cause | Fix |
|---|---|---|
| "Cabeçalhos e rodapés" appear in the PDF | Browser injects them by default | Uncheck the option in the print dialog → Mais configurações |
| Pasted screenshot doesn't appear | Paste-zone wasn't focused | Click the zone first (it turns green) → then Ctrl+V |
OPENAI_API_KEY not set |
Env var missing | export OPENAI_API_KEY=... (or setx on Windows) |
ValueError: missing required columns |
xlsx export missing headers | Re-export from Azure DevOps with default columns |
| Translation hits rate-limit | Too many parallel runs | Wait, the chunk falls back to original; retry the command |
7. Tips for a smooth deliverable¶
- Run a smoke pass first with
--llmif translation is needed; review a few translations before running the full suite. - Keep cases organized via YAML (
--phases) — far easier than scrolling through 50+ flat cases. - Use
--titleto set a meaningful header (e.g."Sprint 42 — Acceptance"); it appears in browser tab and PDF cover. - Periodically Export backup for safety; localStorage / IndexedDB can be cleared by browser cleanup tools.
- One HTML file per cycle: don't try to reuse the same file across sprints. Re-generate from a fresh xlsx each time.