5

我的测试可能如下所示:

module("some module");

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

module("other module");

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

QUnit 的输出将如下所示

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

是否可以让 QUnit 输出模块名称?我很想拥有:

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)
4

2 回答 2

4

根据QUnit 文档,模块开始(和结束)有一个回调,此时您可以修改 DOM。

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

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

将东西放在列表中间是一种顽皮的 DOM 明智的做法,但它似乎有效,至少在 FireFox 中是这样。

于 2009-10-24T04:37:22.607 回答
0

Justin Love 的解决方案对我不起作用,但您可以在测试后插入以下 JQuery Javascript 以获得相同的预期结果:

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>"
                ;})
        }
    });
});
于 2012-08-09T23:53:37.437 回答