2016-02-03 2 views
2

У меня проблема, когда при выполнении моих тестов Ember. После каждых 3-5 попыток он попадает в ошибки перед запуском любых тестов. При запуске в режиме сервера я могу видеть этот вывод:Тест Ember CLI с прерывистым сбоем

ReferenceError: Can't find variable: EmberENV at http://localhost:7357/3256/tests/index.html?hidepassed, line 42 

ReferenceError: Can't find variable: define at http://localhost:7357/assets/test-loader-53146f185443881bff29aab3e80079e2.js, line 3 

ReferenceError: Can't find variable: define at http://localhost:7357/assets/tests-a72d35574ec0d1ab014d4af21210a23a.js, line 1 

Когда я смотрю на наступательные файлах ссылки, они выглядят следующим образом:

/* globals requirejs, require */ 
(function() { 
define("ember-cli/test-loader", 
    [], 
    function() { 
    "use strict"; 

    var moduleIncludeMatchers = []; 
    var moduleExcludeMatchers = []; 

    function addModuleIncludeMatcher(fn) { 
     moduleIncludeMatchers.push(fn); 
    }; 

и т.д ...

Как я понять, define() - это функция, введенная requirejs, поэтому кажется, что она просто не загружается до начала тестов. Любая идея, почему это было бы, и если есть какой-либо способ обеспечить, чтобы вещи были загружены в надлежащем порядке?

Другие важные вещи; это не похоже на проблему с отдельными тестами, так как удаление их, особенно первое, что было бы поражено, не имеет значения. Похоже, что это происходило иногда после большой проверки, где среди прочего мы шли от 130 до 174 тестов, но ничего особенного, похоже, не было. Я также попытался вырезать фрагменты нового кода без каких-либо изменений, но если я вернусь к предыдущей версии, он все равно будет работать правильно каждый раз. Это может быть просто вопрос увеличения кодовой базы.

Для версий зависимостей:

EmberCLI: 1.13.13 
node: 5.4.1 
PhantomJS: 2.1.1 

Все остальное, что было бы полезно предоставить? Благодарю.

+0

Я сталкиваюсь с подобными ошибками, теперь, когда EmberCLI 2.3.0 мы пытаемся обновить до этого. Любая удача, решающая это? EmberCLI 2.3.0 Node: 4.2.6 PhantomJS: 2.1.1 Как ни странно, ошибки, похоже, не происходят на локальных машинах развития Mac OS X, но происходят в CI и в нашей тестовой среде Докер. – patcoll

+0

любая удача, решающая это? – patcoll

+0

Ничего конкретного пока, хотя кажется, что это происходит сейчас, без каких-либо связанных изменений, о которых я могу думать. Я изучаю предложение Джона ниже. – TwoLeggedMammal

ответ

0

У нас была такая же проблема, и были в состоянии исправить это путем обновления QUnit к 1.20.0 в bower.json

"qunit": "~1.20.0", 
+0

У меня уже есть версия qunit, определенная в моем bower.json, однако мы также используем npm, а в моем пакете. Json мы определили ее как^1.0.4, где 1.2.4 теперь самая новая. Я не уверен, какой из них используется во время тестов, но я обновляю^1.2.4 в своем пакете.json и вижу, помогает ли это. – TwoLeggedMammal

+0

Нах не повезло с этим, по-прежнему не удается. Однако хорошая мысль, и я полагаю, что ответ меняет версии некоторой связанной зависимости. – TwoLeggedMammal

+0

Если вы хотите поделиться своими беседами и пакетами, я могу проверить, есть ли у нас что-то подобное с другой версией? – Jon

1

Забыли сообщить здесь, что было зафиксировано в моем случае. Прежде всего этот вопрос был указан здесь: https://github.com/ariya/phantomjs/issues/14173, и это, вероятно, вызвано некоторым встроенным импортом @import url(...), используемым в css.

Исправление в моем случае состоит в том, чтобы написать альтернативный тестовый бегун, который игнорирует сетевой запрос, аналогичный тому, что было предложено в вышеуказанной проблеме @wagenet.

Надеюсь, что это работает для других случаев использования.

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