12

私は qunit を初めて使用し、既存の環境と統合しようとしています。

jQuery を使用するページで発生する問題の 1 つは次のとおりです。

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 のドキュメントに記載されています。残念ながらオブジェクトのcurrentプロパティは記述されていませんが、ソースを見ると、構成プロパティはグローバル エラーを報告するかどうかを定義します。次の行をコメントアウトしてテストを実行すると、問題なく実行されます。configignoreGlobalErrors

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

これは単なるハックであることは承知していますが、QUnit を黙らせる手っ取り早い方法を探しているなら、これでうまくいきます。

于 2013-06-26T11:35:21.123 に答える
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 に答える
1

Chrome を使用してこの問題が発生し、エラーをスローして QUnit で問題を引き起こしているのは私の Chrome 拡張機能の 1 つであることがわかりました。拡張機能を無効にして、ブラウザを再起動してみてください。

于 2013-10-03T04:01:20.460 に答える
0

私にとっては、それは単に QUnit の問題でした。qunitの下位バージョンを変更しただけで、エラーはありません..

于 2015-01-15T17:47:43.357 に答える