mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-04-03 15:43:31 +08:00
3.7 KiB
3.7 KiB
description
| description |
|---|
| 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 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: <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 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