Frameworks on TofuPilot
Last updated on May 22, 2026
TofuPilot has first-class support for the most popular open-source test frameworks. You can run and stream test data using declarative or code-first frameworks, often without any upfront configuration.
Deploy a template
Get started by cloning a template to your favorite git provider and running it on a station.

TofuPilot Framework Starter
Declarative YAML procedure with phases and measurements
tofupilot/template-framework-starter

OpenHTF Starter
OpenHTF suite with measurements and logs mapped to TofuPilot
tofupilot/template-openhtf-starter

Pytest Starter
Pure pytest suite with asserts promoted to measurements
tofupilot/template-pytest-starter

Robot Framework Starter
Robot Framework suite with TofuPilot measurement keywords
tofupilot/template-robot-starter
Framework support matrix
The following table shows which features are supported by each framework on TofuPilot.
Supported Not supported
| Feature | TofuPilot | OpenHTF | Pytest | Robot |
|---|---|---|---|---|
| Data model | ||||
Phases Ordered run steps, each with one outcome. | ||||
Numeric measurements Floats: voltages, temperatures, counts. | ||||
String measurements Text: firmware versions, serials, status codes. | ||||
Boolean measurements True/false flags and presence checks. | ||||
Logs Level, timestamp, file, and line per message. | ||||
Attachments Scope captures, photos, diagnostic files. | ||||
Unit identification Bind a serial number to the run via config or operator prompt. | ||||
Sub-units Bind child units (board components) to the run. | ||||
Plugs Instrument connections shared across phases. | ||||
Multi-dimensional measurements Waveforms and sweeps over X and Y axes. | ||||
Aggregations Mean, min, max, std over arrays. | ||||
Per-axis validators Validate curve shape, not only endpoints. | ||||
| Operator UI | ||||
Simple custom forms Text, number, switch, radio, select inputs. | ||||
Advanced forms & display components Multiselect, checklist, image choice, sliders, progress. | ||||
| Execution | ||||
Retry & timeout Bounded retries with delay; timeouts 1ms–24h. | ||||
Setup / teardown stages Setup gates main; teardown always runs. | ||||
Parallel phases Independent phases run in parallel; depends_on serializes. | ||||
Conditional execution Skip phases based on previous outcomes or runtime state. | ||||
Multi-slot execution Test multiple boards in parallel on one fixture. | ||||
Build your own connector
Stream runs from any in-house or unsupported framework with our open-source typed SDKs in Python, C#, C++, Rust, and MATLAB.
Use the REST API for other languages or low-level integrations.
How is this guide?