获取当前运行的QUnit测试的标题(名称)

时间:2013-02-11 10:08:59

标签: javascript qunit

我想在每个QUnit测试中将快速分隔符记录到控制台,如下所示:

test( "hello test", function() {
    testTitle = XXX; // get "hello test" here
    console.log("========= " + testTitle + "==============");
    // my test follows here
});

如何获得测试的标题(也可称为“名称”)?

4 个答案:

答案 0 :(得分:8)

您可以使用callbacks of QUnit来实现这一目标。在执行测试期间(例如,在每个测试之前,在每个模块之后,......),它们在几个不同的点被调用

以下是我的测试套件中的一个示例:

QUnit.begin = function() {
    console.log('####');
};

QUnit.testStart = function(test) {
    var module = test.module ? test.module : '';
    console.log('#' + module + " " + test.name + ": started.");
};

QUnit.testDone = function(test) {
    var module = test.module ? test.module : '';
    console.log('#' + module + " " + test.name + ": done.");
    console.log('####');
};

将其放在名为helper.js的文件中,并将其包含在测试index.html页面中。

它产生如下输出:

####
#kort-Availability Includes: started.
#kort-Availability Includes: done.
#### 
#kort-UrlLib Constructor: started.
#kort-UrlLib Constructor: done.
#### 
#kort-UrlLib getCurrentUrl: started.
#kort-UrlLib getCurrentUrl: done. 
#### 

答案 1 :(得分:1)

使用此解决方案很简单:

test( "hello test", function(assert) {
  testTitle = assert.test.testName; // get "hello test" here
  console.log("========= " + testTitle + "==============");
  // my test follows here
});

=========你好测试==============

答案 2 :(得分:0)

您应该尝试Javascript的{​​{1}}对象(阅读更多here):

arguments

修改
我创建了一个小的(并记录在案的)jsFiddle example它应该如何工作 请注意,我的答案是纯test( "hello test", function() { testTitle = arguments.callee.caller.arguments[0]; // get "hello test" here console.log("========= " + testTitle + "=============="); // my test follows here }); ,并且不仅适用于JavaScript

答案 3 :(得分:0)

QUnit.config.current是一个包含当前正在运行的测试的对象。所以你可以显示它,比如console.log(QUnit.config.current)。这个对象有许多参数(testName,启动..),你可以改变它们。

multistream