Angular CLI - Karma测试版本没有找到ng2-material

时间:2016-04-13 19:03:20

标签: angularjs angular karma-runner karma-jasmine angular-cli

我正在使用Alpha Angular-CLI构建一个新的Angular 2应用程序。我还使用ng2-material库。为了使它工作,我必须做以下事情:

// index.html
System.config({
  packages: {
      app: {
          format: 'register',
          defaultExtension: 'js 
       },
      'ng2-material': {
          format: 'cjs',
          defaultExtension: 'js',
          main: 'all.js'
      }
  }
  });
  System.import('app.js').then(null, console.error.bind(console));

// ember-cli-build.js
var materialTree = BroccoliFunnel('node_modules/ng2-material', {
    destDir: 'ng2-material'
});

它在应用程序本身中运行良好。但是,当我运行ng test时,我收到以下错误:

  

START:

     

13 04 2016 14:55:36.982:WARN [web-server]:404:/ ng2-material / all

     

Chrome 49.0.2623(Mac OS X 10.11.3)错误

     

错误:加载http://localhost:9876/ng2-material/all

时出现XHR错误(404 Not Found)
 at error (/../node_modules/systemjs/dist/system.src.js:1026:16)

 at XMLHttpRequest.xhr.onreadystatechange (/../node_modules/systemjs/dist/system.src.js:1047:13)
     

13 04 2016 14:55:37.058:WARN [web-server]:404:/ ng2-material / all

我错过了什么?

1 个答案:

答案 0 :(得分:0)

karma-test-shim.js尝试加载模块之前加载模块:

System.import('system-config.js').then(function() {
  // Load and configure the TestComponentBuilder.
  return Promise.all([
    System.import('@angular/core/testing'),
    System.import('@angular/platform-browser-dynamic/testing')
  ]).then(function (providers) {
    var testing = providers[0];
    var testingBrowser = providers[1];

    testing.TestBed.initTestEnvironment(testingBrowser.BrowserDynamicTestingModule,
      testingBrowser.platformBrowserDynamicTesting());
  });
///////////////// Add this part /////////////////
}).then(function() {
  return System.import('/path/to/ng2-material.js/in/node_modules');
/////////////////////////////////////////////////
}).then(function() {
  // Finally, load all spec files.
  // This will run the tests directly.
  return Promise.all(
    allSpecFiles.map(function (moduleName) {
      return System.import(moduleName);
    }));
}).then(__karma__.start, __karma__.error);