2009-10-11 13 views
5

miei test possono apparire come segue:uscita QUnit: separazione visiva dei moduli

module("some module"); 

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

module("other module"); 

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

L'uscita del QUnit sarà simile a questa

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

E 'possibile effettuare l'uscita QUnit i nomi di modulo? Mi piacerebbe avere:

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) 

risposta

4

Secondo il QUnit documentation, v'è una richiamata all'avvio del modulo (e fine), a questo punto è possibile modificare il DOM.

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

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

Mettere roba nel bel mezzo di una lista è una specie di cattivo DOM saggio, ma sembra funzionare, almeno in FireFox.

+0

Lavori in IE8 troppo. –

0

soluzione di Justin L'amore non ha funzionato per me, ma è possibile inserire il seguente JQuery Javascript dopo il test per ottenere lo stesso risultato desiderato:

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