Получение имени теста в функции afterEach в мокко

Позвольте мне начать с того, что я совершенно новичок в node.js и mocha.It просто ломает голову. Я начал использовать подход tdd, и я пытаюсь получить тест, который будет запущен или только что закончен из функций beforeEach и afterEach, но мне не повезло (меня больше всего интересует afterEach). По крайней мере, я не мог понять, как это сделать. Единственное, о чем я мог подумать, - это держать тесты и набор в переменной, а затем afterEach() просто выполнить некоторые соответствия, чтобы увидеть, какой тест закончен.

В идеале, когда он говорит "test name", я хочу иметь что-то вроде suite.test.name

suite('my test suite', function() {
    beforeEach(function () {
        console.log('test name');
    });
    test('first test', function (done) {
        var testarray = ['1', '3', '5', '7'];
        testarray.forEach(function(num, index) {
            console.log('num: ' + num + ' index: ' + index);
        }, 
        done());
    });
    afterEach(){
        console.log('test name');
    }
}

Ответы

Ответ 1

Вы получите имя текущего теста с помощью this.currentTest.title

afterEach(function(){
    console.log(this.currentTest.title)
})

Ответ 2

Я нахожу, что я использую this.currentTest.fullTitle() больше, чем this.currentTest.title - я предпочитаю иметь имена describe.

Ответ 3

Если у вас есть вложенные блоки описания и по какой-то причине вы хотите отделить части заголовка, вы можете сделать что-то вроде следующего в методах beforeEach или afterEach:

function titles(test) {
    console.log(test.title)
    if (test.parent) {
        titles(test.parent)
    }
}

titles(this.currentTest)