
Full context https://github.com/flutter/flutter/issues/148004 TL;DR 1. Because `package:macros` depends on `package:_macros` via [a Dart SDK dependency](https://github.com/dart-lang/sdk/blob/main/pkg/macros/pubspec.yaml#L13); and 2. `package:macros` exactly pins `package:_macros`; and 3. Each new version of `package:macros` will increment its exact pin of `package:_macros` ([comment](https://github.com/flutter/flutter/issues/148004#issuecomment-2103099893)); and 4. The [flutter/flutter](https://github.com/flutter/flutter) repository exactly pins the Dart SDK (via its exact pin on the [flutter/engine](https://github.com/flutter/engine) repository Therefore, the [flutter/flutter](https://github.com/flutter/flutter) repository effectively pins both `package:macros` and `package:_macros` already (as in, there exists only a single version of each that pub will successfully be able to solve within the context of a particular Flutter SDK). Therefore, it is safe for [flutter/flutter](https://github.com/flutter/flutter) repository to *not* pin `package:macros`, which will allow engine -> framework rolls that contain a new Dart SDK that contains a new `package:_macros` version to land automatically, provided all tests pass.
Flutter Web integration tests
To run the tests in this package download the chromedriver matching the version of Chrome. To find out the version of your Chrome installation visit chrome://version.
Start chromedriver
using the following command:
chromedriver --port=4444
An integration test is run using the flutter drive
command. Some tests are
written for a specific web renderer and/or specific build mode.
Before running a test, check the _runWebLongRunningTests
function defined in
dev/bots/test.dart, and determine the right web renderer and the build
mode you'd like to run the test in.
Here's an example of running an integration test:
flutter drive --target=test_driver/text_editing_integration.dart \
-d web-server \
--browser-name=chrome \
--profile \
--web-renderer=html
This example runs the test in profile mode (--profile
) using the HTML
renderer (--web-renderer=html
).
More resources:
- chromedriver: https://chromedriver.chromium.org/getting-started
- FlutterDriver: https://github.com/flutter/flutter/wiki/Running-Flutter-Driver-tests-with-Web
package:integration_test
: https://pub.dev/packages/integration_test