Flutter Test Runner

A visual test tree interface that displays Flutter test hierarchies with real-time execution status, result indicators, and integrated log streaming for interactive test debugging and analysis.

Flutter's testing framework provides unit, widget, and integration tests for your applications. Normally, test results appear as text output in your terminal, making it difficult to navigate test hierarchies, identify failing tests, and correlate failures with logs. Rift Panel's Flutter Test Runner panel transforms this flat output into an interactive visual tree, showing test status at a glance while streaming logs directly from your test sessions.

Test Tree

The Flutter Test Runner displays your test suite as a hierarchical tree view, making it easy to understand the structure of your tests at any scale. Each node in the tree represents either a test group or an individual test case.

  • Groups — Nested containers created with group() that organize related tests. Groups can be expanded and collapsed to focus on specific test families.
  • Tests — Individual test cases created with test() or testWidgets(). Each test shows its status with a visual indicator.
  • Status indicators — Small icons next to each test show whether it is running, passed, failed, or skipped.
  • Duration — The elapsed time for each test is displayed in milliseconds, helping you identify performance regressions.

You can expand and collapse groups to navigate large test suites efficiently. Click on any test node to scroll the log panel to that test's output, letting you see details immediately without manual searching.

Running Tests

Start your Flutter tests from any terminal session using standard Flutter commands:

flutter test

When you run tests, Rift Panel automatically parses the output and builds the test tree in real time. As each test completes, its status updates immediately. You can watch the tree grow and update live without stopping the test run.

Common test execution options include:

  • Unit testsflutter test test/unit/ to run tests in a specific directory
  • Widget testsflutter test test/widget/ --tags=widget to filter by tag
  • Integration testsflutter test integration_test/ for integration test suites
  • Selective testsflutter test --name="pattern" to run only tests matching a pattern

Once a test run completes, the tree remains visible in the panel so you can review results, click on individual tests to examine logs, or rerun specific tests using the context menu.

Results

Each test in the tree displays a result indicator that updates as the test runs:

  • Running — A spinner or progress indicator shows that the test is currently executing. The test output appears in the log panel in real time.
  • Passed — A green checkmark indicates the test completed successfully. The test duration is shown next to the check.
  • Failed — A red X or cross symbol indicates the test did not pass. Clicking the failed test scrolls the log panel to the assertion error and stack trace.
  • Skipped — A gray dash or skip indicator shows the test was skipped (typically due to skip: true in the test definition). Skipped tests do not affect the overall pass/fail result.

A summary at the top of the panel shows total test count, passes, failures, and skips. This summary updates as tests complete, giving you quick visibility into overall suite health.

If a test fails, scroll the log panel to see the full failure message, including the line number in your code that caused the assertion to fail. Use this information to navigate directly to the problematic code.

Prerequisites

The Flutter Test Runner panel requires the following:

  • Flutter SDK — Flutter must be installed and the flutter binary must be on your PATH. The test runner is part of the standard Flutter toolchain.
  • Test files — Your project must have test files in the test/ or integration_test/ directory. Tests are typically created with the test or flutter_test packages.
  • Test output format — Tests run with flutter test must produce structured output on stdout. This is the default behavior; custom test runners may not be recognized.

For faster test iteration, use flutter test --tags=unit to run only your unit tests, which execute much faster than widget or integration tests. Tag your tests appropriately in your code with @Tags(['unit']) to enable selective test runs.