flutter-test
Run Flutter/Dart tests, report failures, and incrementally fix test issues. Covers unit, widget, golden, and integration tests.
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-buildto 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 testsflutter test 2>&1
# Run with coverageflutter test --coverage 2>&1
# Run specific test fileflutter test test/unit/domain/usecases/get_user_test.dart 2>&1
# Run tests matching a name patternflutter 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 madeflutter test --update-goldens 2>&1Example Session
User: /flutter-test
Agent:# Flutter Test Run
## Test Execution
```$ flutter test00: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.dartFailure: `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.dart1 test passed.```
## Fix 2: Widget Test
File: test/widget/cart_page_test.dartFailure: 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.dart1 test passed.```
## Final Run
```$ flutter test --coverageAll 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: <X> Actual: <Y> | 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 passtdd-workflowskill — 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