Javascript 如何在“测试”中获得摩卡测试名称;“之前”;钩子?

Javascript 如何在“测试”中获得摩卡测试名称;“之前”;钩子?,javascript,unit-testing,mocha.js,Javascript,Unit Testing,Mocha.js,我试图在之前的钩子中获取当前的描述名称,如下所示: describe('increasing 3 times', function() { before(function() { console.log('test name'); }); ... }); 我基本上想要检索before钩子中的“增加3倍”字符串 如何做到这一点 谢谢 下面的代码说明了如何做到这一点: describe("top", function () { before(function ()

我试图在
之前的
钩子中获取当前的
描述
名称,如下所示:

describe('increasing 3 times', function() {

  before(function() {
    console.log('test name');
  });

  ...

});
我基本上想要检索before钩子中的“增加3倍”字符串

如何做到这一点


谢谢

下面的代码说明了如何做到这一点:

describe("top", function () {
    before(function () {
        console.log("full title:", this.test.fullTitle());
        console.log("parent title:", this.test.parent.title);
    });

    it("test 1", function () {});
});
使用
spec
reporter运行,这将输出:

full title: top "before all" hook
parent title: top
    ✓ test 1 


  1 passing (4ms)

当Mocha调用传递给其各种函数的函数时(
descripe
before
it
,等等),
的值是一个
上下文
对象。此对象的一个字段名为
test
。这有点用词不当,因为它可以指向实际测试之外的其他东西。对于类似于
before
的钩子,它指向为
before
调用创建的当前
hook
对象。在此对象上调用
fullTitle()
将获得对象的层次名称:对象自己的名称前面加上包含它的测试套件(
description
)的名称。
Hook
对象还有一个
parent
字段,该字段指向包含该Hook的套件。套件有一个
标题
字段,这是传递给
描述

的第一个参数。如果mocha没有提供API,您可以将名称存储在变量中。但它读起来不会那么好听。是的。。我尽量避免这样。