mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00

* 🐛 Fix Spelling Issues in Main README.md * 🐛 Fix spelling issues in dev README.md * 🐛 Fix spelling issues in complex_layout README.md * 🐛 Fix spelling issues in macrobenchmarks README.md * 🐛 Fix spelling issues in platform_views_layout README.md * 🐛 Fix spelling issues in test_Apps/stocks README.md * 🐛 Fix spelling issues in bots README.md * ✒ Spell Check dev/ci README.md * ✒ Spell Check dev/ci/docker_linux README.md * ✒ Spell Check dev/devicelab README.md * ✒ Spell Check dev/docs README.md * ✒ Spell Check dev/snippets README.md * ✒ Spell Check dev/snippets/config/templates README.md * ✒ Spell Check dev/tools/gen_keycodes README.md * ✒ Spell Check dev/tools/vitool README.md * ✒ Spell Check examples/catalog README.md * ✒ Spell Check examples/flutter_view README.md * ✒ Spell Check examples/image_list README.md * ✒ Spell Check examples/layers README.md * ✒ Spell Check examples/platform_channel README.md * ✒ Spell Check examples/platform_channel_swift README.md * ✒ Spell Check examples/platform_view README.md * ✒ Spell Check packages/_flutter_web_build_script README.md * ✒ Spell Check packages/flutter_localizations README.md * ✒ Spell Check packages/flutter_tools README.md * ✒ Spell Check CODE_OF_CONDUCT.md * ✒ Spell Check dev/integration_test/android_splash_screens/splash_Screen_load_rotate README.md * ✒ Spell Check dev/integration_test/android_views README.md * ✒ Spell Check dev/integration_tests/flutter_driver_screenshot_test README.md * ✒ Spell Check dev/integration_tests/flutter_gallery README.md * ✒ Spell Check dev/integration_tests/gradle_deprecated_settings README.md * ✒ Spell Check dev/integration_tests/ios_add2app_life_cycle README.md * ✒ Spell Check dev/integration_tests/ios_host_app README.md * ✒ Spell Check dev/integration_tests/ios_platform_view_tests README.md * ✒ Spell Check dev/automated_tests/flutter_test README.md * ✒ Spell Check .github/PULL_REQUEST_TEMPLATE.md * ✒ Spell Check .hithub/ISSUE_TEMPLATE/ACTIVATION.md * ✒ Spell Check .github/ISSUE_TEMPLATE/BUG.md * ✒ Spell Check .github/ISSUE_TEMPLATE/feature_request.md * ✒ Spell Check .github/ISSUE_TEMPLATE/performance_others.md * ✒ Spell Check .github/ISSUE_TEMPLATE/performance_speed.md * ✒ Spell Check packages/flutter_tools/doc/daemon.md * ✒ Spell Check packages/flutter_tools/fuchsia_enrtypoint_shim/README.md * ✒ Minimize line to 80 columns * ✒ Minimize line to 80 columns * ✒ Fix Typo * ✒ Chnaged numbers to 1 for testing purposes * ✒ Changed numbers to 1 for testing purposes * ❌ Remove 'a' which is a typo * ✒ Change a sentence to be better * ✒ Remove 'a' which is a typo * ✒ Fix small issue * ✒ Fix small typo * ✒ Fix some typos * ❌ Remove trailing space * ❌ Remove trailing space * 🐛 Fix small typo * ✒ Fix Typo * 🐛 Fix small bug
86 lines
2.8 KiB
Markdown
86 lines
2.8 KiB
Markdown
# Flutter Tools
|
|
|
|
This section of the Flutter repository contains the command line developer tools
|
|
for building Flutter applications.
|
|
|
|
## Working on Flutter Tools
|
|
|
|
Be sure to follow the instructions on [CONTRIBUTING.md](../../CONTRIBUTING.md)
|
|
to set up your development environment. Further, familiarize yourself with the
|
|
[style guide](https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo),
|
|
which we follow.
|
|
|
|
### Setting up
|
|
|
|
First, ensure that the Dart SDK and other necessary artifacts are available by
|
|
invoking the Flutter Tools wrapper script. In this directory run:
|
|
```shell
|
|
$ ../../bin/flutter --version
|
|
```
|
|
|
|
### Running the Tool
|
|
|
|
To run Flutter Tools from source, in this directory run:
|
|
```shell
|
|
$ ../../bin/cache/dart-sdk/bin/dart bin/flutter_tools.dart
|
|
```
|
|
followed by command-line arguments, as usual.
|
|
|
|
|
|
### Running the analyzer
|
|
|
|
To run the analyzer on Flutter Tools, in this directory run:
|
|
```shell
|
|
$ ../../bin/flutter analyze
|
|
```
|
|
|
|
### Writing tests
|
|
|
|
As with other parts of the Flutter repository, all changes in behavior [must be
|
|
tested](https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#write-test-find-bug).
|
|
Tests live under the `test/` subdirectory.
|
|
- Hermetic unit tests of tool internals go under `test/general.shard`.
|
|
- Tests of tool commands go under `test/commands.shard`. Hermetic tests go under
|
|
its `hermetic/` subdirectory. Non-hermetic tests go under its `permeable`
|
|
sub-directory.
|
|
- Integration tests (e.g. tests that run the tool in a subprocess) go under
|
|
`test/integration.shard`.
|
|
|
|
In general, the tests for the code in a file called `file.dart` should go in a
|
|
file called `file_test.dart` in the subdirectory that matches the behavior of
|
|
the test.
|
|
|
|
We measure [test coverage](https://codecov.io/gh/flutter/flutter) post-submit.
|
|
A change that deletes code might decrease test coverage, however, most changes
|
|
that add new code should aim to increase coverage. In particular, the coverage
|
|
of the diff should be close to the average coverage, and should ideally be
|
|
better.
|
|
|
|
### Running the tests
|
|
|
|
To run the tests in the `test/` directory, first ensure that there are no
|
|
connected devices. Then, in this directory run:
|
|
```shell
|
|
$ ../../bin/cache/dart-sdk/bin/pub run test
|
|
```
|
|
|
|
The tests in `test/integration.shard` are slower to run than the tests in
|
|
`test/general.shard`. To run only the tests in `test/general.shard`, in this
|
|
directory run:
|
|
```shell
|
|
$ ../../bin/cache/dart-sdk/bin/pub run test test/general.shard
|
|
```
|
|
|
|
To run the tests in a specific file, run:
|
|
```shell
|
|
$ ../../bin/cache/dart-sdk/bin/pub run test test/general.shard/utils_test.dart
|
|
```
|
|
|
|
### Forcing snapshot regeneration
|
|
|
|
To force the Flutter Tools snapshot to be regenerated, delete the following
|
|
files:
|
|
```shell
|
|
$ rm ../../bin/cache/flutter_tools.stamp ../../bin/cache/flutter_tools.snapshot
|
|
```
|