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)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
test_name | string | yes | — | Name of the test plan; identifies it in the Test Runner UI. |
test_cases | map of name → TestCase | yes | — | Per-test limits/metadata, keyed by test function name. |
runner_settings | GUISettings | yes | — | Test Runner display/behavior settings. |
fixture_settings | map of name → FixtureSettings | no | {"DEV": {slot_id: "1"}} | Per-slot fixture settings. |
Minimal valid file (empty test_cases / runner_settings are allowed):
test_name: "my-plan"
runner_settings: {}
test_cases: {}TestCase
The value under each test_cases.<test_function_name> key. All fields are optional.
| Field | Type | Default | Description |
|---|---|---|---|
test_id | string | None | Test ID shown in the GUI (e.g. "1.1"). Coerced to a string. |
error_code | string | None | Error code for the debugging guide. Coerced to a string. |
error_msg | string | None | Message shown when the test fails. |
description | string | None | Test description shown in the GUI. |
min_limit | string | int | float | bool | None | Lower pass/fail limit, if applicable. |
max_limit | string | int | float | bool | None | Upper pass/fail limit, if applicable. |
user_vars | map | {} | 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.
| Field | Type | Default | Description |
|---|---|---|---|
display_name | string | None | Friendly plan name for the GUI. |
stop_at_first_failure | bool | True | Stop the run at the first failing test. |
autorun | bool | False | Start the run automatically when the fixture is ready. |
dut_count | int | 1 | Number of DUTs in the fixture. |
dut_grid | list of int | [1, 1] | Grid layout (rows, columns) for displaying DUTs. |
pytest_args | string | None | Extra pytest arguments the runner appends to the launch command. |
FixtureSettings
The value under each fixture_settings.<name> key. Selected at runtime by --slot_id.
| Field | Type | Default | Description |
|---|---|---|---|
slot_id | string | (required) | Fixture slot ID. Coerced to a string. |
api_url | URL | None | Per-slot fixture API URL, if any. The strings "None", "", and "null" are treated as unset. |
user_vars | map | {} | 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.