我正在尝试在我的角应用上运行Jasmine测试,并在使用开发人员工具进行调试时获得以下消息
错误:(SystemJS)XHR错误(404 Not Found)loading http://localhost:45870/node_modules/@angular/core/bundles/core.umd.js/testing
我认为加载的内容不正确,因为我可以看到这个node_modules/@angular/core/bundles/core.umd.js和core.umd.js是一个文件而不是文件夹。但是有一个foldler node_modules / @ angular / core / bundles / testing。
请参阅下面的Systemjs.config.js文件
/**
* System configuration for Angular samples
* Adjust as necessary for your application needs.
*/
(function (global) {
System.config({
paths: {
// paths serve as alias
'npm:': 'node_modules/'
},
// map tells the System loader where to look for things
map: {
// our app is within the app folder
app: 'app',
'@progress/kendo-angular-grid': 'npm:@progress/kendo-angular-grid',
'@progress/kendo-angular-intl': 'npm:@progress/kendo-angular-intl',
'@telerik/kendo-intl': 'npm:@telerik/kendo-intl',
// angular bundles
'@angular/core': 'npm:@angular/core/bundles/core.umd.js',
'@angular/common': 'npm:@angular/common/bundles/common.umd.js',
'@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
'@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
'@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
'@angular/http': 'npm:@angular/http/bundles/http.umd.js',
'@angular/router': 'npm:@angular/router/bundles/router.umd.js',
'@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
'@angular/upgrade': 'npm:@angular/upgrade/bundles/upgrade.umd.js',
'primeng': 'node_modules/primeng',
'angular2-google-maps/core': 'npm:angular2-google-maps/core/core.umd.js',
// other libraries
'rxjs': 'npm:rxjs',
'angular-in-memory-web-api': 'npm:angular-in-memory-web-api',
},
// packages tells the System loader how to load when no filename and/or no extension
packages: {
app: {
main: './main.js',
defaultExtension: 'js'
},
'npm:@progress/kendo-angular-grid': {
main: './dist/npm/js/main.js',
defaultExtension: 'js'
},
'npm:@progress/kendo-angular-intl': {
main: './dist/npm/js/main.js',
defaultExtension: 'js'
},
'npm:@telerik/kendo-intl': {
main: './dist/npm/js/main.js',
defaultExtension: 'js'
},
'primeng': { defaultExtension: 'js' },
rxjs: {
defaultExtension: 'js'
},
'angular-in-memory-web-api': {
main: './index.js',
defaultExtension: 'js'
}
}
});
})(this);
答案 0 :(得分:0)
因此,您拥有运行应用程序所需的所有Angular文件,并在systemjs.config.js
文件中进行设置。但是在测试中,您正在尝试导入Angular 测试模块中的内容。它们位于不同的包中,而不是(正确地)在应用程序systemjs.config.js
中配置。
您需要做的还是映射那些测试模块。但是你应该在一个只为测试加载的单独文件中执行此操作。如果查看Angular quickstart项目,测试模块有一个karma-test-shim.js SystemJS配置映射。
即使在修复之后,你仍然可能遇到其他错误(如果没有看到茉莉花设置就无法判断。设置这个错误还有很多其他问题。你会看到this plunker完成设置
就个人而言,我建议设置Karma。你可以看一下this article,在那里我做了一个非常彻底的步骤,从Browser / Jasmine到Karma / Jasmine的转换。