2015-02-12 21 views
15

Mam prostą aplikację ember-cli. Przeprowadzam testy jednostkowe z ember test, które uruchamiają je w phantomJS. Test z użyciem Function.prototype.bind kończy się niepowodzeniem ze względu na dobrze znany problem z Phantom 1.9.x, który nie ma tego API. Zainstalowałem phantom 2.0, ale teraz po uruchomieniu ember test, po pomyślnym zbudowaniu, testy nigdy nie działają i po prostu siedzi tam zwisający, bez błędu, nic.PhantomJS 2.0 wiszący na próbie embera

Wszelkie pomysły na temat tego, w czym problem może się znajdować, lub jak go wyśledzić?

System operacyjny to Windows.

+0

Yo! Juzt uze polyfill za prawdziwe: wstaw https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind#Polyfill w dostawcy/phantom-polyfills.js , a następnie zaimportuj go w Brocfile: 'if (app.env === 'test') { app.import (" vendor/phantom-polyfills.js "); } ' – lessless

+0

@lessless Dzięki, to właśnie zrobiłem, aby rozwiązać problem, ale chciałbym, aby rzeczy działały z Phantom 2.0. –

+0

Czy przeprowadzasz testy z 'ember test' lub' ember test --serve'? – alexlafroscia

Odpowiedz

1

Używam Phantom JS 1.9.8 na OS X 10.10, ale mam następujący problem i może ci to pomóc.

W aplikacji, której używam, flaga ENV.baseUrl jest ustawiona na "/ app-name" (domyślna nazwa - "/") i mam dokładnie to samo zachowanie. Test jest zbudowany, ale nie idzie dalej.

Jeśli zmienię ENV.baseUrl na "/", fantom przeprowadzi testy. Testy akceptacyjne kończą się niepowodzeniem (zakładam, że z powodu innego adresu URL, ale wszystkie testy jednostek przechodzą pomyślnie). Jednak gdy to zrobię ... uruchomienie testów w prawdziwej przeglądarce przestanie działać (ponieważ nie może znaleźć zasobów - CSS, JS - już), próbowałem zmienić stronę tests/index.html, aby uzyskać poprawną odwołanie do skryptów (/ app-name/css/... etc ...) i wróciłem do uruchamiania testów w przeglądarce, ale phantom przestał działać.

Te same testy działają dobrze w "pustym projekcie ember-cli", w którym skopiowałem moje modele, kontrolery i przetestowałem ten projekt. Oznacza to, że różnica pomiędzy tymi dwoma projektami polega w zasadzie na konfiguracji środowiska.

Znalazłem te kwestie

Ember Issue 891, Ember Issue 1003

które wydają się być związane z sytuacją, ale oba są zamknięte na jakiś czas. Już od prawie tygodnia badam ten problem i wydaje mi się, że testy w przeglądarce nie są dostępne w przeglądarce: I przez ember test.

+1

jakikolwiek status w tej sprawie? – leojh

+1

Mam ten sam problem, gdzie mój baseUrl =/app-name. Obserwowałem poprawkę pokazaną w zatwierdzeniu w tym wydaniu: https://github.com/ember-cli/ember-cli/issues/1003, co miało na celu sprawdzenie, czy w środowiskach ustawiono ENV.baseURL = '/' .js dla środowiska === "test". Jestem teraz w stanie uruchomić "test embera" i testy w prawdziwych przeglądarkach za pomocą "testu embera - zapisz" NIE mogę uruchomić testów przez uderzenie localhost: 4200//testy już, ale mogę żyć z tym, że "ember test --serve" działa. – benzo

+0

Przepraszamy za późną odpowiedź @LeoHernandez, w tej chwili mam dokładnie taką samą sytuację jak użytkownik benzo. Testy uruchamiane z ember testem i ember testem - save, ale nie mogę zrobić, a następnie uruchomić po uderzeniu localhost: 4200/tests –