2016-03-07 17 views
6

Sto configurando il mio file di configurazione Karma, ma non comprendo completamente alcune delle opzioni esistenti poiché non sto avendo i modelli di test di successo che hanno eseguito il ngHtml2JsPreprocessor e sono statiimpostazione ng-htmljs preprocessore preprocessore karma

$templateCached 

All'interno del ngHtml2JsPreprocessore posso aggiungere alcune proprietà del valore chiave che coinvolgono i percorsi.

ngHtml2JsPreprocessor: { 

     stripPrefix: ".*/Went all the way back to the root of my application/", 


    // moduleName: 'templatesCached'// 
    }, 

Ho commentato i modelli per ora per assicurarmi di ottenere l'accesso a ciascun file come modulo. Sto caricando i moduli senza errori. Posso trovare la versione di templateCached nei miei strumenti di sviluppo.

beforeEach(module('template')); 

La cartella I miei modelli si trova all'esterno del blocco di dati che ho creato.

basePath: 'Scripts/', 

l'ho fatto riferimento all'interno delle preprocessori oggetto

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

Anche in questo caso tutti i miei modelli sono ora i file js e cache.

Ho interno del mio package.json Ho salvato il file come

save-dev 

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

ho fatto riferimento le mie installazioni nei plugin.

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

ho tutti i miei file caricati

files: [ 

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

miei test sono in esecuzione fuori del Karma iniziano

Tuttavia, la mia direttiva è solo una stringa vuota

element.html() 

rendimenti ""

Ho Bard iniettare istituito

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

Ecco l'interno della mia beforeeach

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); 

Non ho idea del perché sto ottenendo una stringa vuota indietro. Sto creando il file html ma non c'è niente al suo interno.

Tutto quello che mi chiedo se dovrei avere il i file di modelli visualizzati in una cartella sui miei strumenti di sviluppo? Anche se i file dovrebbero essere referenziati all'interno dell'array di file all'interno di karma.conf.js

In questo momento ho i file html di riferimento? Ho provato i file js ma non sembravano fare nulla

+0

Hai incluso i file html all'interno dei 'file: []'? Inoltre, prova a compilare l'elemento in un altro blocco 'beforeEach'. – Jagrut

+0

L'ho fatto. Alla fine ho risolto questo problema finì per essere abbastanza semplice – Winnemucca

risposta

1

Il problema era in realtà una soluzione piuttosto semplice. Sono stato tentato di cancellarlo ma, nel caso qualcuno abbia un problema simile, voglio che sia disponibile.

All'interno delle karma.conf.js Ho un

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 

Quando il preprocessore gestì templateCached tutti i miei file. Tuttavia, non hanno messo fine al modo in cui mi aspettavo e non sono riuscito a leggerli. Ho avuto il modulo e altre parti impostati correttamente.