When you have a package with a very large number of tests, the compilation of those tests can be very slow.
As an example, the analyzer and analysis_server in the SDK repos use test_all.dart files, and running tests that way will use far fewer total resources, as well as often completing more quickly even though there is no parallelism.
The high level idea is to create a compilation mode where we create a bootstrap file which imports all the test suites (compatible with the current pattern, probably just based on TestOn), and just compile that suite once per platform.
We would still run each suite individually but using the same compiled app, and then update the communication channel so that it tells it which suite to actually run (probably just based on the path as the identifier).
When you have a package with a very large number of tests, the compilation of those tests can be very slow.
As an example, the analyzer and analysis_server in the SDK repos use
test_all.dartfiles, and running tests that way will use far fewer total resources, as well as often completing more quickly even though there is no parallelism.The high level idea is to create a compilation mode where we create a bootstrap file which imports all the test suites (compatible with the current pattern, probably just based on
TestOn), and just compile that suite once per platform.We would still run each suite individually but using the same compiled app, and then update the communication channel so that it tells it which suite to actually run (probably just based on the path as the identifier).