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.