Как остановить глобальные сбои в qUnit?

Я новичок в qunit и пытаюсь интегрировать его с существующей средой.

Одна из проблем, возникающих на страницах, использующих jQuery, такова:

global failure (1, 0, 1)Rerun6 ms
Uncaught ReferenceError: $ is not defined

Я думаю, это связано с тем, что я не называю библиотеку jquery в qunit HTML. Можно ли установить параметр для игнорирования таких глобальных переменных? Я пытаюсь сделать HTML как можно более гибким, и поскольку у многих редакторов есть разные зависимости, я хочу, чтобы qunit тестировал функции, которые я специально дал ему для тестирования.

Ответ 1

Я тупик с той же ошибкой, но без использования jQuery. Часть QUnit, которая отвечает за распространение ошибки, - это функция обратного вызова window.onerror, которая, помимо прочего, проверяет, установлено ли значение конфигурации QUnit.config.current.ignoreGlobalErrors.

Значения конфигурации QUnit описаны в документации QUnit.config. К сожалению, свойство current объекта config не описано, но, глядя на источник, свойство конфигурации ignoreGlobalErrors определяет, сообщаются ли глобальные ошибки или нет. Пробный прогон со следующими строками прокомментировал прогоны:

QUnit.test( "global failure", extend( function() {
    QUnit.pushFailure( error, filePath + ":" + linerNr );
}, { validTest: validTest } ) );

Я понимаю, что это всего лишь взломать, но если вы ищете быстрый "грязный способ заставить замолчать QUnit, это сработает".

Ответ 2

У меня была проблема с Chrome, и я обнаружил, что это одно из моих расширений chrome, которое выдает ошибку и вызывает проблемы с QUnit. Попробуйте отключить расширения и перезапустить браузер.

Ответ 3

Из Руководство по обновлению Qunit 2.x Я могу прочитать, что произошли изменения в использовании объекта Qunit, при использовании 1.x он работает как это:

test( "global failure", extend( function() {
    QUnit.pushFailure( error, filePath + ":" + linerNr );
    }, { validTest: validTest } ) );

С другой стороны, при использовании 2.x:

Qunit.test( "global failure", extend( function() {
    QUnit.pushFailure( error, filePath + ":" + linerNr );
    }, { validTest: validTest } ) );

должен работать. : -)

Ответ 4

для меня это была просто проблема QUit. просто изменил более низкую версию qunit, без ошибок.