是否可以与Mocha同步调用测试用例?例如,我有以下代码:
context('Context of test suite', () => {
it('test case name', () => {
//call expect() a few times
})
})
console.log('foo')
我想运行它,但我想保证在测试用例执行并通过或失败之后才会打印foo
。 it
不会返回Promise,也不会返回context
,因此我无法使用then
执行此操作。我想要的是什么?
此测试用例存在于after
块内。
答案 0 :(得分:1)
您可以将console.log
移动到嵌套的after
:
describe('all my tests', () => {
it('#1', done => setTimeout(done, 500))
it('#2', done => setTimeout(done, 500))
it('#3', done => setTimeout(done, 500))
after(() => {
context('Context of test suite', () => {
it('test case name', () => {})
after(() => {
console.log('foo');
});
})
});
});
虽然我很难理解你为什么要使用这样的设置。一个问题是,您无法在根级after
(任何describe
块之外)中使用此设置,并且after
不是&{ #39; t意味着进行其他测试,它意味着在测试后清理。
我可能会使用这样的东西:
describe('all my tests', () => {
it('#1', done => setTimeout(done, 500))
it('#2', done => setTimeout(done, 500))
it('#3', done => setTimeout(done, 500))
});
describe('Context of test suite', () => {
it('test case name', () => {})
after(() => {
console.log('foo');
});
})
即。只需放置必须运行的套件,最后,最后。如果您愿意,可以在套件外移动最后after
并将其提升到根级别挂钩。