2016-03-07 10 views
6

Ich richte meine Karma-Konfigurationsdatei, aber ich verstehe einige Optionen nicht vollständig, da ich keinen Erfolg habe, Vorlagen zu testen, die den ngHtml2JsPreprocessor durchlaufen haben undEinrichten von ng-htmljs-Präprozessor Karma Preprocessor

waren
$templateCached 

Innerhalb des ngHtml2JsPreprocessors kann ich ein paar Schlüsselwerteigenschaften hinzufügen, die Pfade beinhalten.

Ich habe die Vorlagen für jetzt auskommentiert, um sicherzustellen, dass ich Zugriff auf jede Datei als Modul bekomme. Ich lade die Module ohne Fehler. Ich kann die templateCached-Version in meinen Entwicklungswerkzeugen finden.

beforeEach(module('template')); 

Mein Templates-Ordner befindet sich außerhalb des Basispfads, den ich erstellt habe.

basePath: 'Scripts/', 

Ich habe es referenziert innerhalb der Preprozessoren Objekt

preprocessors: { 
    '../Templates/**/*.html' : ['ng-html2js'] 
}, 

wieder alle meine Vorlagen sind jetzt js Dateien und zwischengespeichert.

ich in meiner package.json gespeichert ich die Dateien als

save-dev 

"karma-chrome-launcher": "^0.2.2", 
"karma-jasmine": "^0.2.2", 
"karma-ng-html2js-preprocessor": "^0.2.1", 

ich in den Plugins meine Installationen verwiesen.

plugins: [ 
    'karma-chrome-launcher', 
    'karma-jasmine', 
    'karma-sinon', 
    'karma-ng-html2js-preprocessor' 
], 

Ich habe alle meine Dateien

files: [ 

    //jquery libaries 
    // angular libraries 
    // Scripts files 
    // source app.js 
    // tests folder and files 
] 

Meine Tests geladen werden, weg von Karma loslaufen

Allerdings ist meine Richtlinie nur eine leere Zeichenfolge

element.html() 

kehrt ""

Ich habe gesetzt Barde inject up

bard.inject(
      "$compile", 
      "$controller", 
      "$rootScope", 
      '$templateCache', 
      "haConfig", 
      "$q" 
     ); 

ist die Innenseite meiner before

bard.mockService(haConfig, { 
      getTemplateUrl: '/tst!' 
     }); 

     //bard.mockService(haConfig, {}); 
     console.log('ha config2', haConfig.getTemplateUrl()); 

     var html = angular.element("<div explore-hero></div>"); 

     console.log('htl',haConfig.getTemplateUrl()); 

     scope = $rootScope.$new(); 
     //templateCache 
     element = $compile(html)(scope); 
     //console.log(haConfig.getTemplateUrl(html)); 
     scope.$digest(element); 
     console.log('missing text',haConfig.getTemplateUrl(html)); 

     controller = element.scope(); 

     console.log("element", element); 

Ich habe keine Ahnung, warum ich wieder einen leeren String bin immer. Ich erstelle die HTML-Datei, aber nichts ist drin.

Alle ich kann mich fragen, ob ich die die templatesCached Dateien in einem Ordner auf meinem Entwickler-Tools anzeigen lassen sollte? Auch ob die Dateien innerhalb der Dateien Array innerhalb verwiesen werden karma.conf.js

Im Moment habe ich die HTML-Dateien referenziert? Ich habe versucht, die js-Dateien, aber das schien nichts zu tun

+0

Haben Sie die HTML-Dateien in die 'Dateien: []' eingefügt? Versuchen Sie auch, das Element in einem anderen 'beforeEach'-Block zu kompilieren. – Jagrut

+0

tat ich. Ich habe endlich behoben, dass dieses Problem ziemlich einfach war – Winnemucca

Antwort

1

Das Problem war eigentlich ziemlich einfach zu beheben. Ich war versucht, es zu löschen, aber falls jemand ein ähnliches Problem hat, möchte ich, dass es verfügbar ist.

Innerhalb der karma.conf.js Ich habe einen

stripPrefix: 'rootDirectory' // was already in place 

    stripSuffix: '.js.html' // I had to make a strip on the templatesCached 

    prependSuffix: '.html' // this is what I was searching for 

Wenn der Prä-Prozessor lief es alle meine Dateien templateCached. Sie waren jedoch nicht so, wie ich sie erwartet hatte, und ich konnte sie nicht lesen. Ich hatte das Modul und andere Teile richtig eingerichtet.

Verwandte Themen