我想在每个QUnit测试中将快速分隔符记录到控制台,如下所示:
test( "hello test", function() {
testTitle = XXX; // get "hello test" here
console.log("========= " + testTitle + "==============");
// my test follows here
});
如何获得测试的标题(也可称为“名称”)?
答案 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