Mocha beforeEach 在一个套房中 运行 在另一个套房中

Mocha beforeEach in one suite is being run in another suite

我有两个测试套件(我正在使用 mocha 的 TDD UI,它使用 suite()、test() 而不是 describe()it()):

suite('first suite'), function(){
    ....
})


suite('second suite', function(){

    beforeEach(function(done){
        console.log('I SHOULD NOT BE RUN')
        this.timeout(5 * 1000);
        deleteTestAccount(ordering, function(err){
            done(err)
        })
    })

    ... 

}()

运行 mocha -g 'first suite 只有 运行s 来自第一个套件的测试,但是 运行s beforeEach,在控制台上打印 I SHOULD NOT BE RUN

我怎样才能使 beforeEach() 仅 运行 在它所在的套件中?

注意:我可以解决这个问题:

beforeEach(function(done){
    this.timeout(5 * 1000);
    if ( this.currentTest.fullTitle().includes('second suite') ) {
        deleteTestAccount(ordering, function(err){
            done(err)
        })
    } else {
        done(null)
    }
})

问题是 beforeEach 不是 TDD UI 的一部分,而是 BDD UI 的一部分。 TDDUI对应的函数是setup。因此,请尝试将 beforeEach 替换为 setup,一切都会如您所愿:).