2015-02-12 2 views
15

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

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

ОС - Windows.

+0

Yo! Унифицированный полис для реального: поставьте https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind#Polyfill в поставщике/phantom-polyfills.js и импортируйте его in Brocfile: 'if (app.env === 'test') { app.import ('vendor/phantom-polyfills.js'); } ' – lessless

+0

@lessless Спасибо, это то, что я в основном сделал, чтобы решить проблему, но я хотел бы получить работу с фантомом 2.0. –

+0

Выполняете ли вы свои тесты с помощью 'ember test' или' ember test --serve'? – alexlafroscia

ответ

1

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

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

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

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

Я нашел эти вопросы

Ember Issue 891, Ember Issue 1003

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

+1

любое состояние по этому вопросу? – leojh

+1

У меня такая же проблема, когда у меня baseUrl =/app-name. Я следил за исправлением, указанным в фиксации в этой проблеме: https://github.com/ember-cli/ember-cli/issues/1003, который должен был удостовериться, что у меня был ENV.baseURL = '/', установленный в средах .js для среды === 'test'. Теперь я могу запускать «ember test» и тесты в реальных браузерах через «ember test --serve» Я НЕ МОЖЕТ запустить тесты, удалив localhost: 4200//тесты больше, но я могу жить с этим, так как работает «ember test -serve». – benzo

+0

Извините за поздний ответ @LeoHernandez, на данный момент у меня точно такая же ситуация, как у пользователя benzo. Тесты выполняются с помощью теста ember и с тестом ember --serve, но я не могу выполнить его при запуске localhost: 4200/tests –

Смежные вопросы