Skip to content

config.yml Schema

The test-plan config.yml is parsed into the TestPlanConfig Pydantic model (pytest_f3ts.schemas.config). This page documents every field. For a task-oriented intro see Configuration; for the generated model docs see the Python API.

TestPlanConfig (top level)

FieldTypeRequiredDefaultDescription
test_namestringyesName of the test plan; identifies it in the Test Runner UI.
test_casesmap of name → TestCaseyesPer-test limits/metadata, keyed by test function name.
runner_settingsGUISettingsyesTest Runner display/behavior settings.
fixture_settingsmap of name → FixtureSettingsno{"DEV": {slot_id: "1"}}Per-slot fixture settings.

Minimal valid file (empty test_cases / runner_settings are allowed):

yaml
test_name: "my-plan"
runner_settings: {}
test_cases: {}

TestCase

The value under each test_cases.<test_function_name> key. All fields are optional.

FieldTypeDefaultDescription
test_idstringNoneTest ID shown in the GUI (e.g. "1.1"). Coerced to a string.
error_codestringNoneError code for the debugging guide. Coerced to a string.
error_msgstringNoneMessage shown when the test fails.
descriptionstringNoneTest description shown in the GUI.
min_limitstring | int | float | boolNoneLower pass/fail limit, if applicable.
max_limitstring | int | float | boolNoneUpper pass/fail limit, if applicable.
user_varsmap{}Arbitrary user-defined values, configurable via the Test Runner.

Access these in a test via the test_config fixture.

GUISettings

The value of runner_settings. An empty {} is valid — every field has a default.

FieldTypeDefaultDescription
display_namestringNoneFriendly plan name for the GUI.
stop_at_first_failureboolTrueStop the run at the first failing test.
autorunboolFalseStart the run automatically when the fixture is ready.
dut_countint1Number of DUTs in the fixture.
dut_gridlist of int[1, 1]Grid layout (rows, columns) for displaying DUTs.
pytest_argsstringNoneExtra pytest arguments the runner appends to the launch command.

FixtureSettings

The value under each fixture_settings.<name> key. Selected at runtime by --slot_id.

FieldTypeDefaultDescription
slot_idstring(required)Fixture slot ID. Coerced to a string.
api_urlURLNonePer-slot fixture API URL, if any. The strings "None", "", and "null" are treated as unset.
user_varsmap{}Per-slot user-defined values (e.g. MAC addresses, board serials).

Access these in a test via the fixture_config fixture, which returns the FixtureSettings whose slot_id matches --slot_id.

PytestTestPlanConfig

When the plugin resolves config for a single slot it produces a PytestTestPlanConfig — identical to TestPlanConfig except fixture_settings is a single FixtureSettings (the one matching --slot_id) rather than a map. This is what the test_plan_config fixture returns.