2016-05-04 4 views
1

Ich habe eine Tealium AngularJS Lib von Github als eine Bower-Komponente zu meinem SPA hinzugefügt. Das hat sofort meine Komponententests durchbrochen. Ich verstehe nicht warum, wie es noch die Hauptdatei index.html verwenden sollte, die eine Basis href bereits gesetzt hat?

Als ich gulp test Form der Befehlszeile ausführen, bekomme ich diesen Fehler:

PhantomJS 1.9.8 (Windows 7 0.0.0): Executed 11 of 118 SUCCESS (0 secs/0.721 secs) 

    PhantomJS 1.9.8 (Windows 7 0.0.0): Executed 12 of 118 SUCCESS (0 secs/0.73 
    secs) 

    PhantomJS 1.9.8 (Windows 7 0.0.0): Executed 13 of 118 SUCCESS (0 secs/0.741 secs) 

    PhantomJS 1.9.8 (Windows 7 0.0.0) ERROR 

     Error: [$location:noc:/dev/code/new-site-ui] $location in HTML5 mode requires a <c:/dev/code/new-site-ui> tag to be present! 

    http://errors.angularjs.org/1.4.8/$location/noc:/dev/code/new-site-ui 
    at c:/dev/code/new-site-ui/bower_components/angular/angular.js:12197 

PhantomJS 1.9.8 (Windows 7 0.0.0): Executed 13 of 118 ERROR (0 secs/0.741 secs) 

PhantomJS 1.9.8 (Windows 7 0.0.0): Executed 13 of 118 ERROR (0.004 secs/0.741 secs) 

[13:03:12] 'test' errored after 3.67 s 
[13:03:12] Error: Failed 1 tests. 

    at c:\dev\code\new-site-ui\gulp\unit-tests.js:41:58 
    at removeAllListeners (c:\dev\code\new-site-ui\node_modules\karma\lib\server.js:336:7) 
    at Server.<anonymous> (c:\dev\code\new-site-ui\node_modules\karma\lib\server.js:347:9) 
    at Server.g (events.js:199:16) 
    at Server.emit (events.js:129:20) 
    at net.js:1421:10 
    at process._tickCallback (node.js:355:11) 

Process finished with exit code 1 

Ich habe für 2 Tage mit diesem Kampf .. Wer einen Vorschlag?

+0

Wenn Sie das bedeutet, sind gefragt, dass Ihr eine '' Tag , Recht? – MaKCbIMKo

+0

ja .. in der Hauptindex.html Alle Tests laufen gut, aber wenn ich die Github-Lib hinzugefügt, schlägt es fehl, wenn es darum geht, für Test – Dennis

Antwort

13

Sind Sie wirklich sicher, dass Sie <base href="/"> in Ihrem HTML <head> haben?

Um die Notwendigkeit eines <base> Element vermeiden Sie diese zu Ihrem Winkelmodul Config hinzufügen:

$locationProvider.html5Mode({ 
    enabled: true, 
    requireBase: false 
}); 

doc: https://docs.angularjs.org/error/$location/nobase

+0

Ich habe versucht, und natürlich funktioniert es .. Aber reaDBase von was ich abschalten Lesen ist schlecht für Google, wenn es darum geht, Ihre Website zu crawlen und relative Pfade in IE9 aufzulösen? – Dennis

+0

Jemand hat gerade vorgeschlagen, dass Jasmine eine index.html erstellen kann, wenn Unit-Test ausgeführt wird, bei dem die Base-Referenz nicht gesetzt ist? – Dennis

+1

Hmm, ich bin nicht vertraut mit, wie Jasmine und PhantomJS interagieren, aber in der Tat, wenn eine andere HTML-Datei erstellt wird, müssen Sie möglicherweise nach phantomJS Dokument suchen, wie Sie die Seite Meta einrichten. Entschuldigung, ich kann nicht mehr helfen. (Alternativ empfehle ich Winkelmesser für End-to-End-Tests und Jasmin/Karma für Service-Unit-Tests) – floribon

Verwandte Themen