9
votes

Comment exécuter une fonction avant chaque test lorsque vous utilisez Qunit?

Quel est l'équivalent des nunits [configuration] attribut pour ynit?


0 commentaires

3 Réponses :


4
votes

Qunit.TestStart (nom) est appelé chaque fois qu'un nouveau lot de test d'assertions commence à exécuter. nom est le nom de la chaîne du lot de test.

voir La documentation pour plus d'informations.


4 commentaires

Oui, j'ai vu cela, mais il n'est pas évident quant à la façon dont il devrait être utilisé ou ce qu'il devrait être utilisé. Maintenant je sais, merci!


Si vous ne savez pas comment utiliser ce Qunit.TestStStart = fonction (nom) {};


Le terme "lot de test" est quelque peu ambigu. Est-ce la même chose que le nom dans une fonction de fonction de test Définition: test (nom, [attendu], test) ?


La méthode désribée par JURI est maintenant obsolète. Les nouvelles méthodes sont Qunit.TestStart (fonction). Passez la fonction comme un argument plutôt que d'attribuer à TestStart. Le courant (1.10.0PRE-A) permet d'enregistrer des fonctions smuplle à un rappel (testStart, Testdone, etc.). L'ancienne façon n'est autorisée que pour une.



16
votes

Enregistrement d'un rappel Qunit
<div style='margin: 10px 0;'>
  <table summary='profiling' class='profiling_table'>
    <thead>
    <tr>
      <th>Test Name</th>
      <th>Duration</th>
    </tr>
    </thead>
    <tbody id='profiling'>
    </tbody>
  </table>
</div>


0 commentaires

4
votes

La réponse de Perry Tew m'a beaucoup aidé à résoudre ce problème pour moi-même et si quelqu'un est intéressé, j'ai écrit un objet d'événements encapsulé qui configurez tous les événements pour vous pour vous accrocher. Voir ci-dessous:

Veuillez noter que console.log () code> ne fonctionne pas sur tous les navigateurs! Strong> p>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.21/jquery-ui.min.js"></script>    
<script src="lib/qunit-1.9.0.js"></script>
<script src="lib/jquery.mockjax.js"></script>

<!-- QUnit Events -->
<script>

    var testSetup = {

        begin       : function (data) /* before any tests start */ {
            console.log("begin: [" + new Date().toLocaleTimeString() + "]");
        },
        moduleStart : function (data) /* before the start of each module */ {
            console.log("-------\n  moduleStart:", data.name);
        },
        testStart   : function (data) /* before the start of each test */ {
            console.log("    testStart:", data.name);
        },
        log         : function (data) /* called after every assertion */ {
            console.log("      log:", data.message);
        },
        testDone    : function (data) /* after each test */ {
            console.log("    testDone:", data);
        },
        moduleDone  : function (data) /* after each module */ {
            console.log("  moduleDone:", data);
        },
        done        : function (data) /* all tests done */ {
            console.log("done:", data);
        },

        init : function () {
            QUnit.begin = testSetup.begin;
            QUnit.moduleStart = testSetup.moduleStart;
            QUnit.testStart = testSetup.testStart;
            QUnit.log = testSetup.log;
            QUnit.testDone = testSetup.testDone;
            QUnit.moduleDone = testSetup.moduleDone;
            QUnit.done = testSetup.done;
            console.log("\n======== QUnit events initialized ==========");
        }
    };

$(document).ready(testSetup.init);
</script>


1 commentaires

très agréable. Je vais utiliser ceci.