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
,一切都会如您所愿:).
我有两个测试套件(我正在使用 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
,一切都会如您所愿:).