pytest-f3ts
pytest-f3ts is a pytest plugin for writing hardware functional tests — most commonly Printed Circuit Board Assembly (PCBA) tests run during manufacturing. You write an ordinary pytest test plan; the plugin turns each test and assertion into a pass/fail result with limits, IDs, and operator messages.
The same test plan runs in two places, unchanged:
- Locally, from the command line, with results printed to your terminal — no backend or GUI required. Great for development and debugging.
- On the FixturFab Test Runner, where an operator runs it from a GUI, results stream live, and runs are stored in a database.
You don't add special code to get reporting — loading the plugin (-p f3ts) is enough. Opt-in fixtures let a test actively interact with the runner (sub-results, operator dialogs, serial-number capture, status banners).
What a test looks like
from pytest_f3ts.utils import log_vars
def test_5v0_rail(interface, test_config, record_property):
meas = interface.measure_rail("5v0") # read the voltage from your hardware
log_vars(record_property) # record the measurement to the result log
assert test_config.min_limit <= meas <= test_config.max_limitwith limits supplied by a config.yml:
test_name: "widget-controller-board"
runner_settings: {}
test_cases:
test_5v0_rail:
test_id: "1.1"
description: "5V0 rail within tolerance"
min_limit: 4.90
max_limit: 5.10Where to next
- New here? Start with Your First Test — a 10-minute offline quickstart.
- Building a real plan? See Writing Test Plans.
- Want a complete example to copy? See the Starter Test Plan.
About FixturFab
pytest-f3ts is open-source software from FixturFab. You own the test process — the plan, the instruments, the results. FixturFab builds the hardware it runs on: bed-of-nails test fixtures you configure online, with pricing up front and delivery in 2-3 weeks.
When you're ready for the fixture, configure one in FixturFab Studio.