# Rf Testcase Builder

> Generate Robot Framework test cases from structured requirements or scenarios. Use when asked to create test cases, apply tags/setup/teardown/templates, or produce keyword-driven tests. Use when this capability is needed.

- Skill: `tomevault-io/rf-testcase-builder` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/rf-testcase-builder`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/rf-testcase-builder/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/rf-testcase-builder

---


# Robot Framework Test Case Builder

Create test cases in Robot Framework syntax from structured input. Output JSON only.

## Input (JSON)

Provide input via `--input` or stdin. Example:

```json
{
  "style": "keyword-driven",
  "tests": [
    {
      "name": "User can create account",
      "documentation": "Happy path account creation.",
      "tags": ["smoke"],
      "setup": {"keyword": "Open Browser", "args": ["${URL}", "chromium"]},
      "teardown": {"keyword": "Close Browser"},
      "steps": [
        {"keyword": "Go To Sign Up"},
        {"keyword": "Create User", "args": ["${username}", "${role}"]},
        {"keyword": "User Should Be Logged In"}
      ]
    }
  ]
}
```

Template-driven test:

```json
{
  "style": "template",
  "tests": [
    {
      "name": "Login works",
      "template": "Login Should Succeed",
      "data_rows": [
        ["alice", "pass"],
        ["bob", "pass"]
      ]
    }
  ]
}
```

## Command

```bash
python scripts/testcase_builder.py --input tests.json
```

## Flags

- `--allow-control` -- Suppress warnings when control structures (`FOR`, `IF`,
  `WHILE`, `TRY`, etc.) appear in test steps. Without this flag the builder
  emits a warning for each control keyword found, encouraging you to move
  control logic into user keywords.
- `--input FILE` -- Path to the JSON input file (alternative to stdin).

## Timeout support

Add `"timeout"` to a test object to render a `[Timeout]` setting:

```json
{
  "name": "Slow Operation",
  "timeout": "30s",
  "steps": [{"keyword": "Long Running Task"}]
}
```

## Output (JSON)
- `artifact`: test case block(s)
- `warnings` and `suggestions`

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/manykarim) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-11 -->

