12

我是 qunit 的新手,正在尝试将其与现有环境集成。

我在使用 jQuery 的页面上遇到的问题之一是:

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

我认为这是因为我没有在 qunit HTML 中调用 jquery 库。是否可以设置一个参数来忽略这样的全局变量?我试图使 HTML 尽可能灵活,并且尽可能多的编辑器具有不同的依赖项,我只希望 qunit 测试我专门给它测试的功能。

4

5 回答 5

9

我被同样的错误难住了,但是没有使用 jQuery。QUnit 中负责传播错误的部分是window.onerror回调函数,其中包括检查是否QUnit.config.current.ignoreGlobalErrors设置了配置值。

QUnit 配置值在QUnit.config 文档中描述。可惜没有描述object的current属性config,但是从源码来看,ignoreGlobalErrors配置属性定义了是否报全局错误。注释掉以下行的测试运行正常:

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

我意识到这只是一个 hack,但是如果您正在寻找一种快速不脏的方法来使 QUnit 静音,这将起作用。

于 2013-06-26T11:35:21.123 回答
2

Qunit 测试用例代码之前,添加以下内容:

window.onerror = function (msg, url, lineNo, columnNo, error) {
    return false;
}
于 2019-09-13T09:40:47.300 回答
1

我在使用 Chrome 时遇到了这个问题,发现它是我的 chrome 扩展之一,它引发了错误并导致 QUnit 出现问题。尝试禁用扩展并重新启动浏览器。

于 2013-10-03T04:01:20.460 回答
1

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 } ) );

应该改为工作。:-)

于 2015-12-25T01:25:30.490 回答
0

对我来说,这只是一个 QUnit 问题。只是更改了 qunit 的低版本,没有错误..

于 2015-01-15T17:47:43.357 回答