Flutter test generator (Flutter Test Gen)
A CLI tool to automatically generate unit tests for Flutter and Dart projects.
flutter_test_gen analyzes Dart files and generates structured test
templates, helping developers quickly start writing tests without
manually creating boilerplate code.
Features
- Generate tests for classes and top-level functions
- Automatically create the correct
test/folder structure - Append missing tests to existing test files
- Restore deleted tests inside groups
- Restore deleted groups
- Prevent duplicate test generation
- Supports:
- async methods
- static methods
- Adds tags to each test
- Skips:
- private methods
- mixins
- extensions
- CLI help command
Installation
Add the package to your project:
dev_dependencies:
flutter_test_gen: ^0.0.1
mocktail: ^1.0.0 # only when you need to mock dependencies
Then run:
dart pub get
Usage
Generate tests for a Dart file:
dart run flutter_test_gen generate user_service
You can also specify a full file path:
dart run flutter_test_gen generate lib/services/user_service.dart
For convenience, the command also works without generate:
dart run flutter_test_gen user_service
CLI Commands
Generate tests
dart run flutter_test_gen generate <FILE_NAME>
Default behavior is append missing tests.
Append missing tests
dart run flutter_test_gen generate <FILE_NAME> --append
Adds only tests that do not already exist.
Overwrite existing tests
dart run flutter_test_gen generate <FILE_NAME> --overwrite
Recreates the test file completely.
Show help
dart run flutter_test_gen --help
Example
Source file
class UserService {
int getAge() {
return 30;
}
static int add(int a, int b) {
return a + b;
}
}
Generated test
group('UserService | lib/user_service.dart', () {
late UserService service;
setUp(() {
service = UserService();
});
test('getAge', () {
// Arrange
// Act
final result = service.getAge();
// Assert
expect(result, isNotNull);
});
test('add', () {
// Arrange
// Act
final result = UserService.add(1, 1);
// Assert
expect(result, isNotNull);
});
});
Behavior
The generator:
- Creates test files inside the
test/directory - Groups tests by class name
- Restores deleted tests if they are removed
- Restores deleted groups if they are removed
- Prevents duplicate test generation
- Does not modify existing test structure
Requirements
- Dart SDK
- Flutter project (recommended)
Quick Demo
Generate tests for a service:
dart run flutter_test_gen generate user_service
Output:
✓ Found Dart file
✓ Parsed methods
✓ Generated test templates
✓ Appended missing tests
Project Structure
flutter_test_gen
├── bin/
│ └── flutter_test_gen.dart
├── lib/
│ ├── flutter_test_gen.dart
│ └── src/
│ ├── generator/
│ ├── parser/
│ ├── models/
│ └── utils/
├── example/
├── test/
├── README.md
├── LICENSE
└── pubspec.yaml
Roadmap
Planned improvements:
- smarter test data generation
- automatic mock generation
- test coverage integration
- watch mode for automatic test generation
Contributing
Contributions are welcome.
- Fork the repository
- Create a feature branch
- Commit your changes
- Open a pull request
License
MIT License
Repository
github.com/braglath/flutter_test_gen
Author
Built by Flutter Zone to make Flutter unit testing faster and easier.
Keywords
Flutter test generator
Dart test generator
Flutter unit test automation
Flutter testing CLI tool
Libraries
- flutter_test_gen
- Support for doing something awesome.