11

QUnit を使用して JavaScript をテストしています。私もrequirejsを使っています。次のようなテストコードがあります。

QUnit.config.autostart = false;

require(['tests/tests'], function () {
    QUnit.start(); //Tests loaded, run tests
});

これはFF(たまたま19.0.2)ではうまく機能しますが、Chrome(27)とIE(10)の両方でQUnitエラーが発生します:

「テスト コンテキスト外の pushFailure() アサーション」

IE と Chrome で QUnit.start を呼び出す必要がないことがわかりました。他の誰かがこれを見た、または理由について何か提案がありますか?

4

1 に答える 1

14

他の誰かがこの問題に遭遇した場合、私は解決策を見つけました。経験的に、Chrome と IE の両方が、QUnit にアクセスしてロード呼び出しが開始されるとすぐに QUnit のロード イベントを発生させます。私がやったことはこれです:

<script type="text/javascript" src="qunit-1.11.0.js"></script>
<script type="text/javascript">
    QUnit.config.autostart = false;
</script>
    <script type="text/javascript" data-main="main" src="require.js"></script>

QUnit をロードし、自動起動を設定してから、requirejs をロードします。

これは、main.js で autostart=false を設定するよりも厄介ですが、機能するという利点があります :)

于 2013-03-31T17:58:40.953 に答える