您可以移動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
不適用於其他測試,它意味着在測試之後清除。
我可能會使用這樣的事:
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
移到套件外部,並將其提升到根級掛鉤。
你究竟想達到什麼目的?我相信你知道[XY問題](https://meta.stackexchange.com/a/66378) – Sidney
我不明白這個問題。我試圖讓一個測試用例同步執行。 – ewok
測試會同步運行,除非您在內部執行異步操作。如果你只調用'expect()'幾次就不會有問題。 –