PhantomJS 2.0 зависает на тесте Ember

У меня есть простое приложение ember-cli. Я запускаю модульные тесты с помощью ember test, который запускает их в phantomJS. Тест с использованием Function.prototype.bind не проходит из-за известной проблемы с отсутствием этого API в фантоме 1.9.x. Я установил фантом 2.0, но теперь, когда я запускаю ember test, после успешной сборки тесты никогда не запускаются, и он просто висит, ни ошибок, ничего.

Любые идеи о том, что проблема может быть здесь, или как ее отследить?

ОС — винда.


person Community    schedule 12.02.2015    source источник
comment
Эй! Используйте полифилл по-настоящему: поставьте разработчику .mozilla.org/en-US/docs/Web/JavaScript/Reference/ в vendor/phantom-polyfills.js, а затем импортировать его в Brocfile: if (app.env === 'test') { app.import('vendor/phantom-polyfills.js'); }   -  person lessless    schedule 15.02.2015
comment
@lessless Спасибо, это то, что я в основном сделал, чтобы решить проблему, но я хотел бы, чтобы все работало с фантомом 2.0.   -  person    schedule 17.02.2015
comment
Вы проводите свои тесты с ember test или ember test --serve?   -  person Alex LaFroscia    schedule 24.02.2015
comment
Раньше у меня была эта проблема, но я снова попробовал phantomjs 2.0, и теперь он работает без каких-либо изменений или проблем. Возможно, обновление до пакетов ember решило эту проблему, так как несколько версий назад я столкнулся с этой проблемой.   -  person Kevin Bullaughey    schedule 28.04.2015


Ответы (1)


Я использую Phantom JS 1.9.8 на OSX 10.10, но у меня возникла следующая проблема, и это может помочь вам узнать об этом.

В приложении, которое я использую, для флага ENV.baseUrl установлено значение «/app-name» (по умолчанию — «/»), и у меня точно такое же поведение. Тест строится, но дальше не идет.

Если я изменю свой ENV.baseUrl на '/', фантом запустит тесты. Приемочные тесты терпят неудачу (я полагаю, из-за другого URL-адреса, но все модульные тесты проходят). Однако, когда я делаю это... запуск тестов в реальном браузере перестает работать (потому что он больше не может найти ресурсы - CSS, JS -), я попытался изменить страницу test/index.html, чтобы иметь правильный ссылка на скрипты (/app-name/css/... etc...) и я вернулся к запуску тестов в браузере, но фантом перестал работать.

Те же тесты отлично работают в «пустом проекте ember-cli», куда я скопировал свои модели, контроллеры и тесты в этот проект. Это означает, что разница между двумя проектами в основном заключается в конфигурации среды.

Я нашел эти проблемы

Ember Issue 891 , Ember Issue 1003

Которые, кажется, связаны с ситуацией, но оба закрыты в течение некоторого времени. Я изучаю эту проблему уже почти неделю и не могу запустить тесты в браузере И через ember test.

person Pedro Rio    schedule 04.03.2015
comment
у меня та же проблема, когда мой baseUrl=/имя приложения. я выполнил исправление, показанное в фиксации в этом выпуске: github.com/ember- cli/ember-cli/issues/1003, который должен был убедиться, что я установил ENV.baseURL = '/' в environments.js для environment==='test'. Теперь я могу запускать 'ember test' и тестировать в реальных браузерах через 'ember test --serve'. Я больше НЕ могу запускать тесты, нажимая localhost:4200/‹app-name›/tests, но я могу жить с этим, так как 'ember test --serve' работает. - person benzo; 09.07.2015
comment
Извините за поздний ответ @LeoHernandez, на данный момент у меня точно такая же ситуация, как у пользователя benzo. Тесты запускаются с помощью ember test и ember test --serve, но я не могу запустить их при нажатии на localhost:4200/tests - person Pedro Rio; 09.07.2015
comment
У меня он начал работать, когда я обновился до PhantomJS 2.0. - person leojh; 09.07.2015