angular/packages/core/testing/src
Andrew Kushnir 309ffe7e16 fix(ivy): TestBed rewrite to avoid unnecessary recompilations (#29483)
Prior to this change, Ivy version of TestBed was not designed to support the logic to avoid recompilations - most of the Components/Directives/Pipes were recompiled for each test, even if there were no overrides defined for a given Type. Additional checks to avoid recompilation were introduced in one of the previous commits (0244a2433e), but there were still some corner cases that required attention. In order to support the necessary logic better, Ivy TestBed was rewritten/refactored. Main results of this rewrite are:

* no recompilation for Components/Directives/Pipes without overrides
* the logic to restore state between tests (isolate tests) was improved
* transitive scopes calculation no longer performs recompilation (it works with compiled defs)

As a result of these changes we see reduction in memory consumption (3.5-4x improvement) and pefromance increase (4-4.5x improvement).

PR Close #29483
2019-03-27 09:41:58 -07:00
..
async.ts docs: update core to use @publicApi tags (#26595) 2018-10-19 14:35:53 -07:00
async_fallback.ts build: update zone.js to 0.9.0 (#28219) 2019-03-26 12:50:38 -07:00
async_test_completer.ts build(bazel): Turning on strictPropertyInitialization for Angular. (#24572) 2018-06-25 07:57:13 -07:00
before_each.ts docs: in doc comments, replace [aA]ngular2 with Angular (#15463) 2017-03-27 09:44:35 -07:00
component_fixture.ts docs: update core to use @publicApi tags (#26595) 2018-10-19 14:35:53 -07:00
fake_async.ts docs: convert all @experimental tags to @publicApi tags (#26595) 2018-10-19 14:35:52 -07:00
fake_async_fallback.ts docs: convert all @experimental tags to @publicApi tags (#26595) 2018-10-19 14:35:52 -07:00
lang_utils.ts refactor: move angular source to /packages rather than modules/@angular 2017-03-08 16:29:27 -08:00
logger.ts refactor: move angular source to /packages rather than modules/@angular 2017-03-08 16:29:27 -08:00
metadata_override.ts docs: convert all @experimental tags to @publicApi tags (#26595) 2018-10-19 14:35:52 -07:00
metadata_overrider.ts feat(ivy): implement TestBed (#25369) 2018-08-14 11:58:47 -07:00
ng_zone_mock.ts perf(core): refactor NgZone, decrease size by 1.2Kb (#17773) 2017-07-01 10:29:56 -07:00
private_export_testing.ts refactor: move angular source to /packages rather than modules/@angular 2017-03-08 16:29:27 -08:00
r3_test_bed.ts fix(ivy): TestBed rewrite to avoid unnecessary recompilations (#29483) 2019-03-27 09:41:58 -07:00
r3_test_bed_compiler.ts fix(ivy): TestBed rewrite to avoid unnecessary recompilations (#29483) 2019-03-27 09:41:58 -07:00
resolvers.ts fix(ivy): TestBed rewrite to avoid unnecessary recompilations (#29483) 2019-03-27 09:41:58 -07:00
test_bed.ts test(ivy): finish root cause analysis for @angular/core TestBed failing tests (#27510) 2018-12-06 13:41:02 -08:00
test_bed_common.ts docs: update core to use @publicApi tags (#26595) 2018-10-19 14:35:53 -07:00
test_compiler.ts docs: convert all @experimental tags to @publicApi tags (#26595) 2018-10-19 14:35:52 -07:00
testing.ts refactor(ivy): cleanup the public API for core/testing (#25492) 2018-08-15 09:53:17 -07:00
testing_internal.ts build: extract interface and util sub compilation from core (#28028) 2019-01-10 16:31:44 -08:00