Skip to main content
Kodelyth ECC
Command

/flutter-test

Run Flutter/Dart tests, report failures, and incrementally fix test issues. Covers unit, widget, golden, and integration tests.

Run:/flutter-test

Flutter Test

This command runs the Flutter test suite and reports results. When failures occur, it diagnoses and fixes issues incrementally.

What This Command Does

  • Run Tests: Execute flutter test (or scope to changed files)
  • Parse Failures: Identify failing tests by type and cause
  • Fix Incrementally: One failure at a time where possible
  • Verify: Re-run after each fix
  • Report: Show coverage summary and remaining failures

When to Use

Use /flutter-test when:

  • After implementing a feature to verify nothing broke
  • After running /flutter-build to ensure tests pass
  • To check test coverage on new code
  • When a specific test file is failing
  • Before submitting a PR

Commands Run

# Run all tests
flutter test 2>&1

Run with coverage

flutter test --coverage 2>&1

Run specific test file

flutter test test/unit/domain/usecases/get_user_test.dart 2>&1

Run tests matching a name pattern

flutter test --name "CartBloc" 2>&1

Run integration tests (requires device/emulator)

flutter test integration_test/ 2>&1

Update golden files when intentional visual changes are made

flutter test --update-goldens 2>&1

Example Session

User: /flutter-test

Agent:

Flutter Test Run

Test Execution

$ flutter test 00:05 +42 -2: Some tests failed.

FAILED: test/unit/data/user_repository_test.dart UserRepository getById returns null when user not found Expected: null Actual: User(id: 'test-id', name: 'Test User')

FAILED: test/widget/cart_page_test.dart CartPage shows empty state when cart is empty Expected: exactly one widget with text 'Your cart is empty' Found: no widget with text 'Your cart is empty'


Fix 1: Repository Test

File: test/unit/data/user_repository_test.dart Failure: getById returns a user when it should return null for missing ID

Root cause: Test setup adds a user with ID 'test-id' but queries with 'missing-id'. Fix: Updated test to query with 'missing-id' — setup was correct, query was wrong.

$ flutter test test/unit/data/user_repository_test.dart 1 test passed.

Fix 2: Widget Test

File: test/widget/cart_page_test.dart Failure: Empty state text widget not found

Root cause: Empty state message was renamed from 'Your cart is empty' to 'Cart is empty' in the widget. Fix: Updated test string to match current widget copy.

$ flutter test test/widget/cart_page_test.dart 1 test passed.

Final Run

$ flutter test --coverage All 44 tests passed. Coverage: 84.2% (target: 80%)

Summary

| Metric | Value | |--------|-------| | Total tests | 44 | | Passed | 44 | | Failed | 0 | | Coverage | 84.2% |

Test Status: PASS ✓

Common Test Failures

| Failure | Typical Fix | |---------|-------------| | Expected: Actual: | Update assertion or fix implementation | | Widget not found | Fix finder selector or update test after widget rename | | Golden file not found | Run flutter test --update-goldens to generate | | Golden mismatch | Inspect diff; run --update-goldens if change was intentional | | MissingPluginException | Mock platform channel in test setup | | LateInitializationError | Initialize late fields in setUp() | | pumpAndSettle timed out | Replace with explicit pump(Duration) calls |

Related Commands

  • /flutter-build — Fix build errors before running tests
  • /flutter-review — Review code after tests pass
  • /tdd — Test-driven development workflow

Related

  • Agent: agents/flutter-reviewer.md
  • Agent: agents/dart-build-resolver.md
  • Skill: skills/flutter-dart-code-review/
  • Rules: rules/dart/testing.md

Agents this command fires