2009-10-11 7 views
5

Mes tests peuvent ressembler à ceci:sortie QUnit: séparation visuelle des modules

module("some module"); 

test("test A", ...); 
test("test B", ...); 

module("other module"); 

test("test C", ...); 
test("test D", ...); 

La sortie de QUnit ressemblera à ceci

1. test A (0, 0, 0) 
2. test B (0, 0, 0) 
3. test C (0, 0, 0) 
4. test D (0, 0, 0) 

Est-il possible de faire sortie QUnit le nom du module? J'aimerais avoir:

some module 
1. test A (0, 0, 0) 
2. test B (0, 0, 0) 

other module 
3. test C (0, 0, 0) 
4. test D (0, 0, 0) 

Répondre

4

Selon le QUnit documentation, il y a un rappel au démarrage du module (et fin), à quel point vous pouvez modifier le DOM.

QUnit.moduleStart = function(name) { 
    var tests = document.getElementById("qunit-tests"); 

    if (tests) {  
    var mod = document.createElement("h2"); 
    mod.innerHTML = name; 
    tests.appendChild(mod); 
    } 
}; 

Mettre des choses au milieu d'une liste est une sorte de méchant DOM sage, mais il semble fonctionner, au moins dans FireFox.

+0

Works dans IE8 aussi. –

0

solution de Justin L'amour n'a pas fonctionné pour moi, mais vous pouvez insérer les éléments suivants Javascript JQuery après votre test pour obtenir le même résultat souhaité:

QUnit.done(function(details) 
{ 
    $("#qunit-tests > li ") //the test rows 
    .each(function(index, Element){ 
     var moduleName = $(".module-name", this).text(); 
     if (moduleName !== $(".module-name", this.previousSibling).text()) 
     { 
      $(this).before(//prepend header to it 
       function(){ 
        return "<h3 class='module-header'>" + moduleName + "</h3>" 
       ;}) 
     } 
    }); 
}); 
Questions connexes