2017-06-14 133 views
1

我正在寻找一种方式来对karma-test-shim.src.jsAngular2测试和RESOURCE_CACHE_PROVIDER全球

,因为我们还可以使用他们DIST文件夹,我们不能改变单一的测试上initTest阶段设置提供商RESOURCE_CACHE_PROVIDERResourceLoader其中templateUrlgulp-inline-ng2-templatetemplate取代

在这里,我们已经没有成功运行一些测试:

Promise.all([ 
    System.import("@angular/core/testing"), 
    System.import("@angular/platform-browser-dynamic"), 
    System.import("@angular/platform-browser-dynamic/testing") 
]).then(function ([testing, browserDynamic, testingBrowserDynamic]) { 
     testing.TestBed.initTestEnvironment(
      [testingBrowserDynamic.BrowserDynamicTestingModule], 
      testingBrowserDynamic.platformBrowserDynamicTesting() 
     ); 

     // First approach (it doesn't work) 
     testing.TestBed.overrideProvider(browserDynamic.RESOURCE_CACHE_PROVIDER); 

     // Second approach (it doesn't work) 
     testing.TestBed.configureCompiler({ 
     providers: [ 
      browserDynamic.RESOURCE_CACHE_PROVIDER 
     ] 
    }) 

回答

1

我们已经找到了解决办法,但不是基于角提供商。

我们开发了一个简单的因果报应预处理器只是为了测试为:

preprocessors: { 
      "**/*.component.js": ["generic"] 
     }, 

然后预处理器只使用gulp-inline-ng2-template解析器

genericPreprocessor: { 
      rules: [{ 
       process: function (content, file, done, log) { 
        // Prepare content for parser 
        file.contents = new Buffer(content); 
        // Every file has a parser 
        var parse = require('gulp-inline-ng2-template/parser')(file, { base: "packages/", useRelativePaths: false }); 
        // Call real parse function 
        parse(function (err, contents) { 
         // Callback with content with template and style inline 
         done(contents); 
        }); 
       } 
      }] 
     },