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

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

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

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

12
streetlight 23 Янв 2013 в 17:35

5 ответов

Лучший ответ

Я озадачен той же ошибкой, однако без использования 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, это сработает.

9
Steen 26 Июн 2013 в 11:35

Из Руководства по обновлению 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 } ) );

Должен работать вместо :-)

1
viridis 25 Дек 2015 в 01:25

перед кодом Qunit Test Case добавьте следующее:

window.onerror = function (msg, url, lineNo, columnNo, error) {
    return false;
}
0
Fauzan Khan 16 Сен 2019 в 10:36

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

1
Brian Peacock 3 Окт 2013 в 04:01

Для меня это была просто проблема. только что поменял нижнюю версию qunit, ошибки нет ..

0
Young 15 Янв 2015 в 17:47