2015-02-12 15 views
15

Ich habe eine einfache Ember-CLI App. Ich führe die Komponententests mit ember test aus, die sie in phantomJS ausführt. Ein Test unter Verwendung von Function.prototype.bind schlägt fehl, weil das bekannte Problem von Phantom 1.9.x diese API nicht enthält. Ich installierte Phantom 2.0, aber jetzt, wenn ich ember test laufen lasse, laufen die Tests nach erfolgreichem Aufbau nie und es sitzt einfach dort hängend, kein Fehler, nichts.PhantomJS 2.0 hängt am Glutentest

Irgendwelche Ideen, was das Problem hier sein könnte, oder wie man es aufspürt?

OS ist Windows.

+0

Yo! Juzt Uze Polyfill für real: put https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind#Polyfill in Vendor/Phantom-Polyfills.js und dann importieren in Brocfile: 'wenn (app.env === 'test') { app.import ('vendor/phantom-polyfills.js'); } ' – lessless

+0

@lessless Danke, das habe ich im Grunde gemacht, um das Problem zu lösen, aber ich würde gerne Dinge mit Phantom 2.0 arbeiten lassen. –

+0

Führen Sie Ihre Tests mit 'ember test' oder' ember test --serve' aus? – alexlafroscia

Antwort

1

Ich benutze Phantom JS 1.9.8 auf OSX 10.10, aber ich hatte das folgende Problem und es kann Ihnen helfen, dies zu wissen.

In der Anwendung, die ich verwende, ist das ENV.baseUrl-Flag auf "/ app-name" (der Standardwert ist '/') und ich habe genau dasselbe Verhalten. Der Test baut, geht aber nicht weiter.

Wenn ich meine ENV.baseUrl auf '/' ändere, führt phantom die Tests aus. Akzeptanztests scheitern (ich vermute wegen der anderen URL, aber alle Komponententests bestehen). Allerdings, wenn ich das tue ... das Ausführen der Tests in einem echten Browser funktioniert nicht mehr (weil es die Ressourcen - CSS, JS - nicht mehr finden kann), habe ich versucht, die Seite tests/index.html zu ändern, um eine korrekte zu haben Verweise auf die Skripte (/ app-name/css/... etc ...) und ich habe die Tests im Browser ausgeführt, aber Phantom funktioniert nicht mehr.

Die gleichen Tests laufen gut in einem "leeren ember-cli-Projekt", wo ich meine Modelle, Controller und Test auf dieses Projekt kopiert habe. Das bedeutet, dass der Unterschied zwischen den beiden Projekten im Wesentlichen die Konfiguration der Umgebung ist.

ich diese Probleme habe

Ember Issue 891, Ember Issue 1003

, die auf die Situation verwandt zu sein scheinen gefunden, aber beide sind seit einiger Zeit geschlossen. Ich habe dieses Problem seit fast einer Woche untersucht und kann nicht scheinen, Tests im Browser AND über ember test laufen zu lassen.

+1

irgendeinen Status auf diesem? – leojh

+1

Ich habe das gleiche Problem, wo meine BaseUrl =/App-Name. Ich folgte dem Fix in der Commit in dieser Ausgabe gezeigt: https://github.com/ember-cli/ember-cli/issues/1003, die sicherstellen sollte, dass ich ENV.baseURL = '/' in Umgebungen gesetzt hatte .js für die Umgebung === "Test". Ich bin jetzt in der Lage, 'ember test' zu laufen und Tests in echten Browsern über 'ember test --serve' Ich bin nicht in der Lage, Tests durch Treffer localhost: 4200//Tests mehr, aber ich kann leben damit funktioniert 'ember test --serve'. – benzo

+0

Sorry für die späte Antwort @Leohernandez, im Moment habe ich genau die gleiche Situation wie Benutzer Benzo. Tests laufen mit ember test und mit ember test --serve aber kann ich dann nicht ausführen, wenn localhost trifft: 4200/tests –