有没有办法在 mocha 记者中获取当前测试的文件名?
我在基础和示例中找不到任何东西。
实际上,从这个拉取请求开始,文件名在 mocha 的文件字段中传递给套件。只是现在 mocha 最常见的是作为 karma 插件(即karma-mocha插件)运行,而且,说到 14 年 12 月,这个插件只是不会进一步传递文件名信息。
为了使这个答案自洽,这是在 mocha 中形成 Suite 的方式(它是 tdd 实现,但它与 bdd 类似):
context.suite = function(title, fn){
var suite = Suite.create(suites[0], title);
suite.file = file;
suites.unshift(suite);
fn.call(suite);
suites.shift();
return suite;
};
以下是 karma-mocha/lib/adapter.js 中套装的形成方式:
runner.on('test end', function(test) {
var skipped = test.pending === true;
var result = {
id: '',
description: test.title,
suite: [],
success: test.state === 'passed',
skipped: skipped,
time: skipped ? 0 : test.duration,
log: test.$errors || []
};
var pointer = test.parent;
while (!pointer.root) {
result.suite.unshift(pointer.title);
pointer = pointer.parent;
}
tc.result(result);
});
但是你知道吗,我想这是在 karma-mocha 项目中作为功能请求发布的一件好事。