• Derek Xu's avatar
    Support using lightweight Flutter Engines to run tests (#141726) · dfb5888e
    Derek Xu authored
    This PR implements the functionality described above and hides it behind
    the `--experimental-faster-testing` flag of `flutter test`.
    
    ### The following are some performance measurements from test runs
    conducted on GitHub Actions
    
    run 1 logs:
    https://github.com/derekxu16/flutter_test_ci/actions/runs/8008029772/attempts/1
    run 2 logs:
    https://github.com/derekxu16/flutter_test_ci/actions/runs/8008029772/attempts/2
    run 3 logs:
    https://github.com/derekxu16/flutter_test_ci/actions/runs/8008029772/attempts/3
    
    **length of `flutter test --reporter=expanded test/animation
    test/foundation` step**
    
    run 1: 54s
    run 2: 52s
    run 3: 56s
    
    average: 54s
    
    **length of `flutter test --experimental-faster-testing
    --reporter=expanded test/animation test/foundation` step**
    
    run 1: 27s
    run 2: 27s
    run 3: 29s
    
    average: 27.67s (~48.77% shorter than 54s)
    
    **length of `flutter test --reporter=expanded test/animation
    test/foundation test/gestures test/painting test/physics test/rendering
    test/scheduler test/semantics test/services` step**
    
    run 1: 260s
    run 2: 270s
    run 3: 305s
    
    average: 278.33s
    
    
    **length of `flutter test --experimental-faster-testing
    --reporter=expanded test/animation test/foundation test/gestures
    test/painting test/physics test/rendering test/scheduler test/semantics
    test/services` step**
    
    from a clean build (right after deleting the build folder):
    
    run 1: 215s
    run 2: 227s
    run 3: 245s
    
    average: 229s (~17.72% shorter than 278.33s)
    
    Note that in reality, `test/material` was not passed to `flutter test`
    in the trials below. All of the test files under `test/material` except
    for `test/material/icons_test.dart` were listed out individually
    
    **length of `flutter test --reporter=expanded test/material` step**
    
    run 1: 408s
    run 2: 421s
    run 3: 451s
    
    average: 426.67s
    
    **length of `flutter test --experimental-faster-testing
    --reporter=expanded test/material` step**
    
    run 1: 382s
    run 2: 373s
    run 3: 400s
    
    average: 385s (~9.77% shorter than 426.67s)
    
    ---------
    Co-authored-by: 's avatarDan Field <dnfield@google.com>
    dfb5888e
Name
Last commit
Last update
..
analyze.dart Loading commit data...
analyze_base.dart Loading commit data...
analyze_continuously.dart Loading commit data...
analyze_once.dart Loading commit data...
android_analyze.dart Loading commit data...
assemble.dart Loading commit data...
attach.dart Loading commit data...
build.dart Loading commit data...
build_aar.dart Loading commit data...
build_apk.dart Loading commit data...
build_appbundle.dart Loading commit data...
build_bundle.dart Loading commit data...
build_ios.dart Loading commit data...
build_ios_framework.dart Loading commit data...
build_linux.dart Loading commit data...
build_macos.dart Loading commit data...
build_macos_framework.dart Loading commit data...
build_preview.dart Loading commit data...
build_web.dart Loading commit data...
build_windows.dart Loading commit data...
channel.dart Loading commit data...
clean.dart Loading commit data...
config.dart Loading commit data...
create.dart Loading commit data...
create_base.dart Loading commit data...
custom_devices.dart Loading commit data...
daemon.dart Loading commit data...
debug_adapter.dart Loading commit data...
devices.dart Loading commit data...
doctor.dart Loading commit data...
downgrade.dart Loading commit data...
drive.dart Loading commit data...
emulators.dart Loading commit data...
generate.dart Loading commit data...
generate_localizations.dart Loading commit data...
ide_config.dart Loading commit data...
install.dart Loading commit data...
ios_analyze.dart Loading commit data...
logs.dart Loading commit data...
make_host_app_editable.dart Loading commit data...
packages.dart Loading commit data...
precache.dart Loading commit data...
run.dart Loading commit data...
screenshot.dart Loading commit data...
shell_completion.dart Loading commit data...
symbolize.dart Loading commit data...
test.dart Loading commit data...
update_packages.dart Loading commit data...
upgrade.dart Loading commit data...
validate_project.dart Loading commit data...