Pregunta

Mis pruebas pueden tener este aspecto:

module("some module");

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

module("other module");

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

La salida de QUnit se parecerá a esto

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

¿Es posible hacer que la salida QUnit los nombres de los módulos? Me gustaría tener:

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)
¿Fue útil?

Solución

De acuerdo con la QUnit documentación , hay una devolución de llamada en el inicio de módulo (y final), por lo cuyo momento se podía modificar el DOM.

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

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

poner cosas en el medio de una lista es una especie de DOM traviesa sabia, pero parece que funciona, al menos en Firefox.

Otros consejos

solución

El amor de Justin no funcionó para mí, pero se puede insertar la siguiente JQuery Javascript después de la prueba para conseguir el mismo resultado deseado:

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>"
                ;})
        }
    });
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top