diff --git a/packages/flutter_tools/README.md b/packages/flutter_tools/README.md index e1aaeafa3e9..db6ad734108 100644 --- a/packages/flutter_tools/README.md +++ b/packages/flutter_tools/README.md @@ -1,13 +1,66 @@ # Flutter Tools -Developer tools for building Flutter applications. +Command line developer tools for building Flutter applications. -Be sure to follow the instructions on -[CONTRIBUTING.md](../../CONTRIBUTING.md) to setup. +## Working on Flutter Tools -To run the tests, ensure that no devices are connected, -then navigate to `flutter_tools` and execute: +Be sure to follow the instructions on [CONTRIBUTING.md](../../CONTRIBUTING.md) +to set up your development environment. +### Setup + +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/cache/dart-sdk/bin/pub run test +$ ../../bin/flutter --version +``` + +### Running + +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. + +### Analyzing + +To run the analyzer on Flutter Tools, in this directory run: +```shell +$ ../../bin/flutter analyze +``` + +### Testing + +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 +``` + +When running all of the tests, it is a bit faster to use `build_runner`. First, +set `FLUTTER_ROOT` to the root of your Flutter checkout. Then, in this directory +run: +```shell +$ ../../bin/cache/dart-sdk/bin/pub run build_runner test +``` + +### 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 ```