Skip to content
Test framework

Running tests

Run tests, folders and suites, headless or inside the app, read the step-by-step output and browse step screenshots.

Find the Runner in the dock under Framework → Runner.

First-time setup

  • Node.js missing: the Runner shows Download Node.js and Re-check (see Requirements).
  • Node.js present: the first time, the app installs the test runner automatically (“Setting up test runner… (first run, one time)”). If it doesn’t complete, click Retry setup after checking the output.

The test list

  • All tests shows every test of the active project in folders: recordings and generated flow tests.
    • Hover a test and click ▶ to run it.
    • Hover a folder and click ▶ to run every test inside it (always headless).
    • Refresh re-reads the list.
  • Suites — named groups of tests:
    • New suite (+) creates one and lets you name it.
    • Add tests with the + next to each test → Add to suite (a test can be in several suites).
    • ▶ runs the suite; the pencil (or a double-click) renames it; × removes a test from it; the trash deletes the suite (the tests stay on disk).

Run options

On the right side of the Runner status bar:

OptionChoices
Playback speed⏩ Full speed, ▶ Slow (250 ms between actions), ▷ Slower (500 ms), 🐢 Slowest (1 s). Slower speeds make runs easy to follow.
Run modeHeadless — in a separate, invisible browser. In-App — visibly, in a dedicated tab of the app’s browser. Suites run in either mode.
Close tabsWhen on, test tabs opened by In-App runs close when the run ends; when off, they stay open for inspection.
StepsTakes a screenshot at every action of the test (see Step screenshots). Remembered between sessions.

Results

  • While running: Running, the test or suite name, and a Stop button.
  • The output describes every step in plain words: what is done and on which element, the result (✓ green / ✗ red) and its real duration — e.g. ✓ Fill "demo@shop.test" getByTestId('login-email') 12ms.
  • Navigations show the full address, including the active environment and the part after # — e.g. ✓ Navigate to "http://localhost:3000/#/login".
  • Each test starts with a header naming the test’s folder. When a test fails, the reason and the line of the test file appear under the failed step.
  • At the end, a summary — ✓ All 3 tests OK or ✗ Failed: 1 of 3 tests — and the status Passed or Failed (exit N).
  • Values generated by dynamic data appear in the output; secrets and passwords show as ••••••. With test data, each row is a separate result.
  • After a single test run, Report opens its HTML report in your default browser.

This applies to single tests and suites, Headless and In-App, including tests saved with earlier versions.

Step screenshots

  • When a test fails (always, even with Steps off): a screenshot of the page where it stopped, with a red Failed here: … label and the element of the failing action highlighted, when known.
  • With Steps on: one screenshot per action — the cursor on the element to click, the text typed into a field (one shot, once the text is in), the page after each navigation, and End of test. Runs take a little longer.

At the end of the run, open the Screenshots tab next to Output (a red dot means a test failed):

  • Choose the test — with a suite, every test has its own shots. It opens on the first failed test.
  • Move with ◀ ▶ or the arrow keys, or jump with the numbered strip (red = failure, green = end of test).
  • Each shot has a caption with the action, element and address; the failure shot shows the full error.
  • Click a shot to enlarge it. You can also open the screenshots folder.

Passwords and secrets stay hidden in the shots. Screenshots are kept until the next run or until you close the app; Clear deletes them right away. In-App shots are correct with the browser zoom and cover the whole browser area, including the part behind the open Runner panel.

Running tests — Actify Studio Docs