18

首先让我说我对 node.js 和 mocha 很陌生。这让我很头疼。我开始使用 tdd 方法,我试图从 beforeEach 和 afterEach 函数中开始或刚刚完成的测试,但我没有运气。(我最感兴趣的是 afterEach)。至少我想不出一个巧妙的方法来做到这一点。我唯一能想到的是将测试和套件保存在一个变量中,然后在 afterEach() 上进行一些匹配以查看哪个测试已完成。

理想情况下,它说“测试名称”我想要像 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');
    }
}
4

3 回答 3

25

你得到当前测试的名称this.currentTest.title

afterEach(function(){
    console.log(this.currentTest.title)
})
于 2013-07-27T11:17:52.197 回答
12

我发现我使用this.currentTest.fullTitle()的不仅仅是this.currentTest.title- 我更喜欢拥有这些describe名称。

于 2013-11-06T14:24:29.520 回答
0

如果您有嵌套的描述块,并且由于某种原因想要分隔标题部分,您可以在beforeEachorafterEach方法中执行以下操作:

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

titles(this.currentTest)
于 2017-08-09T17:54:58.077 回答