mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Updated CONTRIBUTING.md to have a testing section (flutter/engine#50469)
fixes https://github.com/flutter/flutter/issues/143087 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide] and the [C++, Objective-C, Java style guides]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I added new tests to check the change I am making or feature I am adding, or the PR is [test-exempt]. See [testing the engine] for instructions on writing and running engine tests. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I signed the [CLA]. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/wiki/Tree-hygiene#overview [Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene [test-exempt]: https://github.com/flutter/flutter/wiki/Tree-hygiene#tests [Flutter Style Guide]: https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style [testing the engine]: https://github.com/flutter/flutter/wiki/Testing-the-engine [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/wiki/Chat
This commit is contained in:
parent
ae1b5bbb13
commit
3296aee197
@ -38,6 +38,70 @@ with `gn format`.
|
||||
[objcc_style]: https://google.github.io/styleguide/objcguide.html#objective-c
|
||||
[java_style]: https://google.github.io/styleguide/javaguide.html
|
||||
|
||||
## Testing
|
||||
|
||||
The testing policy for contributing to the flutter engine can be found at the [Tree Hygiene Wiki][tree_hygiene_wiki]. The summary is that all PR's to the engine should be tested or have an explicit test exemption.
|
||||
|
||||
Because the engine targets multiple platforms the testing infrastructure is fairly complicated. Here are some more resources to help guide writing tests:
|
||||
|
||||
- [Testing the engine wiki][testing_the_engine_wiki] - A guide on writing tests for the engine including an overview of the different tests and the different technologies the engine uses.
|
||||
- [//testing](./testing) - This is where the `run_tests.py` script is located. All tests will have the ability to be executed with `run_tests.py`.
|
||||
- [//ci/builders](./ci/builders) - The JSON files that determine how tests are executed on CI.
|
||||
|
||||
Tests will be executed on CI, but some tests will be executed before PR's can be merged (presubmit) and others after they have been merged (postsubmit). Ideally everything would be presubmit but tests that take up more resources are executed in postsubmit.
|
||||
|
||||
### Example run_tests.py invocation
|
||||
|
||||
```sh
|
||||
# Configure host build for macOS arm64 debug.
|
||||
$ flutter/tools/gn --runtime-mode=debug --unoptimized --no-lto --mac-cpu=arm64
|
||||
# Compile default targets (should cover all applicable run_tests.py requirements).
|
||||
$ ninja -j100 -C out/host_debug_unopt_arm64
|
||||
# Run all cross-platform C++ tests for the debug build arm64 variant.
|
||||
$ cd flutter/testing
|
||||
$ ./run_tests.py --variant=host_debug_unopt_arm64 --type=engine`
|
||||
```
|
||||
|
||||
### Directory
|
||||
|
||||
| Name | run_tests.py type | Description |
|
||||
|-|-|-|
|
||||
| accessibility_unittests |engine ||
|
||||
| client_wrapper_glfw_unittests|engine ||
|
||||
| client_wrapper_unittests|engine ||
|
||||
| common_cpp_core_unittests|engine ||
|
||||
| common_cpp_unittests|engine ||
|
||||
| dart_plugin_registrant_unittests|engine ||
|
||||
| display_list_rendertests|engine ||
|
||||
| display_list_unittests|engine ||
|
||||
| embedder_a11y_unittests|engine ||
|
||||
| embedder_proctable_unittests|engine ||
|
||||
| embedder_unittests|engine ||
|
||||
| felt| n/a | The test runner for flutter web. See //lib/web_ui |
|
||||
| flow_unittests| engine ||
|
||||
| flutter_tester| dart | Launcher for engine dart tests. |
|
||||
| fml_arc_unittests|engine ||
|
||||
| fml_unittests|engine | Unit tests for //fml |
|
||||
| framework_common_unittests| engine(mac) ||
|
||||
| gpu_surface_metal_unittests| engine(mac)||
|
||||
| impeller_dart_unittests| engine ||
|
||||
| impeller_golden_tests| engine(mac)| Generates golden images for impeller (vulkan, metal, opengles).|
|
||||
| impeller_unittests| engine | impeller unit tests and interactive tests |
|
||||
| ios_test_flutter| objc | dynamic library of objc tests to be run with XCTest |
|
||||
| jni_unittests| engine(not windows)||
|
||||
| no_dart_plugin_registrant_unittests|engine ||
|
||||
| platform_view_android_delegate_unittests| engine(not windows) ||
|
||||
| runtime_unittests|engine ||
|
||||
| shell_unittests|engine(not windows) ||
|
||||
| scenario_app|android | Integration and golden tests for Android, iOS|
|
||||
| testing_unittests| engine ||
|
||||
| tonic_unittests|engine | Unit tests for //third_party/tonic |
|
||||
| txt_unittests| engine(linux) ||
|
||||
| ui_unittests|engine ||
|
||||
|
||||
[tree_hygiene_wiki]: https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
|
||||
[testing_the_engine_wiki]: https://github.com/flutter/flutter/wiki/Testing-the-engine
|
||||
|
||||
## Fuchsia Contributions from Googlers
|
||||
|
||||
Googlers contributing to Fuchsia should follow the additional steps at:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user