Tôi hiện đang có ứng dụng Hybrid Angular (2.4.9 và 1.5.0) bằng angular-cli. Hiện nay, khi chạy ứng dụng của chúng tôi, chúng tôi có thể bootstrap 1,5 ứng dụng một cách chính xác:Góc 1.x/2 Hybrid, thử nghiệm nghiệp không bootstrapping ng1 ứng dụng
// main.ts
import ...
platformBrowserDynamic().bootstrapModule(AppModule).then(platformRef => {
angular.element(document).ready(() => {
const upgrade = platformRef.injector.get(UpgradeModule) as UpgradeModule;
upgrade.bootstrap(document.body, ['myApp'], {strictDi: true});
});
});
Tuy nhiên, trong test.ts
tập tin của chúng tôi:
// test.ts
// This file is required by karma.conf.js and loads recursively all the .spec and framework files
import ...;
declare var __karma__: any;
declare var require: any;
__karma__.loaded = function() {};
getTestBed().initTestEnvironment(
BrowserDynamicTestingModule,
// I'm assuming that I need to call 'boostrapModule()' somehow here...
platformBrowserDynamicTesting()
);
const context = require.context('./', true, /\.spec\.ts$/);
context.keys().map(context);
__karma__.start();
Tôi không chắc chắn chính xác làm thế nào để bootstrap ứng dụng 1.5 của chúng tôi vào môi trường thử nghiệm, tất cả những gì tôi nhận được là Module 'myApp' is not available!
và các kỹ năng của Google của tôi đã thất bại khi cố gắng tìm một ví dụ.
Có thể tốt để xóa 'khai báo var __karma__: bất kỳ;' và sử dụng gói '@ types/karma' thực tế. Điều này không gây ra lỗi của bạn, nhưng tất cả 'khai báo const lib: any;' trong mã của bạn là ném đi công cụ thường hữu ích. –
Tôi phải thừa nhận, khi tôi đọc "Angular 1.x/2 Hybrid", tôi đã không tin rằng một điều như vậy thậm chí còn có thể. – wheeler