最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to stop Global Failures in qUnit? - Stack Overflow

programmeradmin2浏览0评论

I'm new to qunit, and am attempting to integrate it with an existing environment.

One of the issues I get on pages that utilize jQuery is this:

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

I think this is because I'm not calling the jquery library in the qunit HTML. Is it possible to set a parameter to ignore globals like this? I am trying to make the HTML as flexible as possible, and as many editors have different dependencies, I only want qunit to test the functions I specifically give it to test.

I'm new to qunit, and am attempting to integrate it with an existing environment.

One of the issues I get on pages that utilize jQuery is this:

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

I think this is because I'm not calling the jquery library in the qunit HTML. Is it possible to set a parameter to ignore globals like this? I am trying to make the HTML as flexible as possible, and as many editors have different dependencies, I only want qunit to test the functions I specifically give it to test.

Share Improve this question asked Jan 23, 2013 at 13:35 streetlightstreetlight 5,96813 gold badges65 silver badges102 bronze badges 4
  • 1 What is the environment that you are running your QUnit tests? Is it within Rhino? – Zorayr Commented Jan 25, 2013 at 18:18
  • The browser actually. Is this common? – streetlight Commented Jan 28, 2013 at 12:29
  • How are you importing your JQuery library? – Zorayr Commented Jan 28, 2013 at 22:42
  • I actually don't want to import jQuery, I just wanted initially to not include it, and only test the functions I want to that are in the same sheet, that don't use jQuery. With further research I'm not sure this is possible. – streetlight Commented Feb 18, 2013 at 18:22
Add a comment  | 

5 Answers 5

Reset to default 9

I'm stumped at the same error, however without using jQuery. The part of QUnit that is responsible for propagating the error is the window.onerror callback function, which, among other things, check whether the QUnit.config.current.ignoreGlobalErrors configuration value is set.

QUnit configuration values are described in the QUnit.config documentation. Unfortunately, the current property of config object is not described, but from looking at the source, the ignoreGlobalErrors configuration property defines whether global errors are reported or not. A test run with the following lines commented out runs fine:

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

I realize that this is just a hack, but if you're looking for a quick'n'dirty way to silence QUnit, this will work.

before Qunit Test Case code, add the following :

window.onerror = function (msg, url, lineNo, columnNo, error) {
    return false;
}

I had this problem using Chrome and found that it was one of my chrome extensions that was throwing an error and causing problems with QUnit. Try disabling extensions and restarting the browser.

From Qunit 2.x upgrade guide I can read there has been a change in using Qunit object, when using 1.x it works like this:

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

On the other hand when using 2.x:

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

should work instead. :-)

for me it was simply a QUnit problem. just changed lower version of qunit, no error..

发布评论

评论列表(0)

  1. 暂无评论