Skip to content

Running Locally

You can run any test plan from the command line with no backend or GUI. This is the fastest way to develop and debug a plan.

Run

From the plan directory (where config.yml lives):

bash
pytest -p f3ts

-p f3ts loads the plugin. Useful options:

  • --f3ts_config=path/to/config.yml — use a config file other than ./config.yml.
  • -s — allow terminal input, required if your tests use user_dialog.
  • --skip-summary — skip the end-of-run summary table (see the gotcha below).

What you'll see

  1. Two backend warnings. Offline, the plugin tries to reach a backend, fails, and falls back to local mode:
    text
    WARNING: Unable to connect to backend API ...
    Invalid URL 'None/runs/DEV': No scheme supplied.
    These are expected, not errors.
  2. A Test ID: section per test, printing the result object (limits, measurement, pass/fail).
  3. A summary table at the end:
    text
    ======================= FixturFab Test Runner Summary =======================
    Test ID   Test Name      Description                    Min Limit   Measurement   Max Limit   Passed   Duration (s)
    1.1       test_5v0_rail  5V0 rail within tolerance      4.9         5.01          5.1         True     0.00047

Suppressing the summary table

The summary table renders at the end of every offline run. It uses your console width when stdout is an interactive terminal and falls back to a default width when output is piped or captured (pytest -p f3ts | tee run.log, CI runners), so it prints cleanly either way.

Pass --skip-summary if you'd rather suppress it — the per-test Test ID: results are still printed:

bash
pytest -p f3ts --skip-summary

Logs

Result data is also recorded on each test's user_properties and is written into JUnit XML when you pass --junitxml=out.xml to pytest, so you can feed the results into other tooling.

Next

When you're ready to run under the operator GUI, see With the Test Runner, which covers registering the plan, slots, and live results.