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.

Framework support matrix

The following table shows which features are supported by each framework on TofuPilot.

Supported Not supported
FeatureTofuPilotOpenHTFPytestRobot
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?

On this page