2017-06-14 63 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); 
        }); 
       } 
      }] 
     },