2014-01-05 3 views
3

Мне недавно удалось получить мой ember-auth tests to pass, но он еще не идеален, так как тесты терпят неудачу каждый второй раз (или если выполняется несколько тестов, каждый второй тест об аутентификации терпит неудачу).Тесты с ошибкой QUnit с ошибкой каждый второй запуск

Я создал small sample app, чтобы продемонстрировать отказ.

Вы должны быть в состоянии воспроизвести ошибку, выполнив следующие действия:

1. git clone https://github.com/pedrokost/ember_auth_testing_example.git 
2. cd ember_auth_testing_example 
3. ruby -run -e httpd . -p5000 # (or any HTTP server like: python -m SimpleHTTPServer) 
4. Open http://localhost:5000?test in the browser 

Если тесты проходят, обновите страницу и увидеть его работу с ошибкой «Invalid форматом JSON». В следующий раз, когда вы обновите его, он снова будет работать.

+0

это не связано с ошибкой App.reset, это https://github.com/heartsentwined/ember-auth/issues/129? – Kingpin2k

+0

После обновления до [ember 1.3] (http://emberjs.com/blog/2014/01/06/ember-1-3-0-and-ember-1-4-0-beta-released.html) эти ошибки ушли. – Pedro

ответ

1

У меня была эта точная проблема при использовании локального хранилища для сохранения сеанса. Это связано с тем, что тестирование ember не очищает локальное хранилище по умолчанию. Есть по крайней мере три способа решения это:

  1. Используйте эфемерное хранение с Ember Auth
  2. Добавить локальное удаление хранения ваших настройки функций/Teardown
  3. Добавить Ember Auth логаут функции Teardown

Первое решение, по-видимому, является самым простым и лучшим решением, поскольку можно установить хранилище только для Ember Auth. В уголек-AUTH документация explains варианты хранения:

Cookie

App.Auth = Em.Auth.extend 
    session: 'dummy' 

Фиктивные (для модульных тестов)

App.Auth = Em.Auth.extend 
    session: 'cookie' 

Вы хотели бы установить ваши, чтобы манекене в вашей инициализации, если Ember.testing === true

+0

Знаете ли вы, как очистить localstorage в тестовом режиме? – user2936314

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