首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在mocha的afterEach函数中获取测试名称

在mocha的afterEach函数中获取测试名称
EN

Stack Overflow用户
提问于 2013-07-27 08:53:13
回答 3查看 6.3K关注 0票数 18

首先我要说的是,我对node.js还很陌生,mocha.It简直让我头破血流。我开始使用测试驱动开发方法,并试图从beforeEach和afterEach函数中获得即将开始或刚刚结束的测试,但我没有运气(我最感兴趣的是afterEach)。至少我不能想出一个干净利落的方法。我唯一能想到的就是将测试和套件放在一个变量中,然后在afterEach()上做一些匹配,看看哪个测试已经完成。

理想情况下,它显示‘测试名称’时,我希望使用类似于suite.test.name的名称

代码语言:javascript
复制
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');
    }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-27 19:17:52

您可以使用this.currentTest.title获取当前测试的名称

代码语言:javascript
复制
afterEach(function(){
    console.log(this.currentTest.title)
})
票数 25
EN

Stack Overflow用户

发布于 2013-11-06 22:24:30

我发现我更多地使用this.currentTest.fullTitle()而不是this.currentTest.title--我也更喜欢使用describe名称。

票数 12
EN

Stack Overflow用户

发布于 2017-08-10 01:54:58

如果您具有嵌套的describe块,并且出于某种原因想要分隔标题部分,则可以在beforeEachafterEach方法中执行类似以下操作:

代码语言:javascript
复制
function titles(test) {
    console.log(test.title)
    if (test.parent) {
        titles(test.parent)
    }
}

titles(this.currentTest)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17893179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档