ng test でテストを実行すると Missing: SyncTestZoneSpec エラーが発生する場合がある。
Uncaught Error: Missing: SyncTestZoneSpec
at http://localhost:9876/_karma_webpack_/vendor.bundle.js:32051
WebStrom などでコミットする時に「Optimaze import」が有効になっていると、import の順序が書き換えられてしまうのが原因だ。
test.ts の import の順序を下記の通りにすると解決する。
test.ts
import 'zone.js/dist/long-stack-trace-zone';
import 'zone.js/dist/proxy.js';
import 'zone.js/dist/sync-test';
import 'zone.js/dist/jasmine-patch';
import 'zone.js/dist/async-test';
import 'zone.js/dist/fake-async-test';
import { getTestBed } from '@angular/core/testing';
import {
BrowserDynamicTestingModule,
platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';