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()ortestWidgets(). 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 tests —
flutter test test/unit/to run tests in a specific directory - Widget tests —
flutter test test/widget/ --tags=widgetto filter by tag - Integration tests —
flutter test integration_test/for integration test suites - Selective tests —
flutter 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: truein 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
flutterbinary 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/orintegration_test/directory. Tests are typically created with thetestorflutter_testpackages. - Test output format — Tests run with
flutter testmust 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.