124 lines
4.1 KiB
Markdown
124 lines
4.1 KiB
Markdown
---
|
||
name: testlink-to-autotest
|
||
description: "Full pipeline: fetch TestLink test case → decompose into mini-tests → write autotests → review code quality → run and fix tests. Use when: user wants end-to-end test automation from a TestLink test case number, полный цикл по тест-кейсу, сгенерируй автотесты по тест-кейсу TestLink, автоматизировать тест-кейс, full pipeline test case to autotest, КМД в автотест, TestLink в код."
|
||
argument-hint: "TestLink test case ID (e.g. КМД-1831 or 1831)"
|
||
---
|
||
|
||
# TestLink → Autotest Full Pipeline
|
||
|
||
Orchestrates four skills in sequence to go from a TestLink test case ID
|
||
to reviewed, passing autotests — with checkpoints at each stage.
|
||
|
||
## Pipeline Overview
|
||
|
||
```
|
||
[1] testlink-decompose → Mini-test specifications
|
||
↓
|
||
[2] autotest-writer → Test code files
|
||
↓
|
||
[3] python-review → Code quality fixes (🔴 auto-applied, 🟡🟢 proposed)
|
||
↓
|
||
[4] test-runner → Passing test suite
|
||
```
|
||
|
||
## Procedure
|
||
|
||
### Stage 1 — Decompose Test Case
|
||
|
||
Apply the full `testlink-decompose` skill procedure using the test case ID provided by the user.
|
||
|
||
On completion, display the mini-test table and ask:
|
||
|
||
> **Checkpoint 1/4** — Found {N} mini-test(s). Proceed to write autotests for all?
|
||
> Or specify which mini-test IDs to cover (e.g. `MT1, MT3`).
|
||
|
||
Wait for confirmation. If the user selects a subset — carry only those mini-tests forward.
|
||
|
||
---
|
||
|
||
### Stage 2 — Write Autotests
|
||
|
||
Apply the full `autotest-writer` skill procedure for each accepted mini-test.
|
||
|
||
Pass the mini-test structure (id, title, description, steps, expected result)
|
||
directly as the test specification — skip `autotest-writer` Step 1 discovery of "what to test"
|
||
since the spec is already known.
|
||
|
||
Still execute:
|
||
- `autotest-writer` Step 2 — discover project test patterns
|
||
- `autotest-writer` Step 3 — resolve library docs via context7 if needed
|
||
- `autotest-writer` Step 4 — plan tests (one plan entry per mini-test step group)
|
||
- `autotest-writer` Step 5–7 — write, place, and collect-validate
|
||
|
||
On completion:
|
||
|
||
> **Checkpoint 2/4** — Written {N} test function(s) in `{filepath}`.
|
||
> Proceeding to code review...
|
||
|
||
No confirmation needed — continue automatically.
|
||
|
||
---
|
||
|
||
### Stage 3 — Code Review
|
||
|
||
Apply the full `python-review` skill procedure on the test file(s) written in Stage 2.
|
||
|
||
Auto-apply rules:
|
||
- 🔴 Must Fix — **apply immediately without asking**
|
||
- 🟡 Should Fix — **apply immediately without asking**
|
||
- 🟢 Consider — **show as suggestions, do not apply**
|
||
|
||
After applying 🔴🟡 fixes, display 🟢 suggestions (if any) and ask:
|
||
|
||
> **Checkpoint 3/4** — Review complete. Applied {N} fixes.
|
||
> 🟢 Suggestions: {list or "none"}
|
||
> Apply any suggestions before running tests? (`yes` / `no` / list numbers)
|
||
|
||
Wait for response, then apply selected suggestions.
|
||
|
||
---
|
||
|
||
### Stage 4 — Run Tests
|
||
|
||
Apply the full `test-runner` skill procedure on the test file(s) from Stage 2.
|
||
|
||
If tests pass on first run:
|
||
|
||
> **Checkpoint 4/4 ✅** — All {N} tests passing.
|
||
|
||
If tests fail — follow the full `test-runner` diagnosis and fix loop (up to 3 iterations).
|
||
After fixing, re-run the full suite for regression check.
|
||
|
||
---
|
||
|
||
### Final Report
|
||
|
||
Output a structured pipeline summary:
|
||
|
||
```
|
||
## Pipeline Complete: {ORIGINAL_ID} → Autotests
|
||
|
||
| Stage | Result |
|
||
|-------|--------|
|
||
| 1. Decompose | {N} mini-tests from {ORIGINAL_ID} |
|
||
| 2. Write | {N} test functions in {filepath} |
|
||
| 3. Review | {N} fixes applied; {N} suggestions |
|
||
| 4. Run | {passed}/{total} tests passing |
|
||
|
||
### Test Functions Written
|
||
- `test_{name_1}` — КМД-XXXX-MT1
|
||
- `test_{name_2}` — КМД-XXXX-MT2
|
||
|
||
### Remaining Issues (if any)
|
||
{description or "None"}
|
||
```
|
||
|
||
## Error Handling
|
||
|
||
| Failure point | Action |
|
||
|---|---|
|
||
| Stage 1: test case not found | Stop, report to user, ask for correct ID |
|
||
| Stage 2: no test patterns found | Ask user to point to an existing test file as reference |
|
||
| Stage 3: mypy/ruff not installed | Skip review, warn user, continue to Stage 4 |
|
||
| Stage 4: tests fail after 3 fix attempts | Report remaining failures with diagnosis; do not loop further |
|