Mocha 以意外的顺序嵌套运行 beforeEach
Mocha runs nested beforeEach in unexpect order
我有一个使用带有嵌套 describe 和 beforeEach 块的 Mocha 的测试套件。
当我 运行 测试时,我希望外部 beforeEach 在内部 beforeEach
之前 运行
这是一些示例代码
const expect = require('chai').expect
describe('Outer describe', async () => {
beforeEach(() => {
console.log('Outer beforeEach is running!!!!');
});
afterEach(() => {
console.log('Outer afterEach is running!!!!');
});
it('Outter test', async () => {
expect(true).to.be.true;
});
describe('Inner describe', () => {
before(() => {
console.log('Inner beforeEach is running!!!!');
});
after(() => {
console.log('Inner afterEach is running!!!!');
});
// only used to simplify the output
it.only('Inner test', async () => {
expect(true).to.be.true;
});
})
});
他是运行以上测试
的输出
Outer describe
Inner describe
Inner beforeEach is running!!!!
Outer beforeEach is running!!!!
✓ Inner test
Outer afterEach is running!!!!
Inner afterEach is running!!!!
我期待的是
Outer describe
Inner describe
Outer beforeEach is running!!!!
Inner beforeEach is running!!!!
✓ Inner test
Inner afterEach is running!!!!
Outer afterEach is running!!!!
这是预期的行为吗?
我的内部 beforeEach 取决于我的外部 beforeEach 运行ning 之前,这被认为是不好的做法吗?
我正在使用
节点 14.11.0
摩卡 8.1.3
输出与预期不符的原因是内部描述使用的是 before
而不是 beforeEach
before
在 describe 块中的所有测试之前仅 运行s 一次,在 describe 块中的每个测试之前 beforeEach
运行s 。这意味着外部描述的 beforeEach
需要在内部 before
之后 运行
我有一个使用带有嵌套 describe 和 beforeEach 块的 Mocha 的测试套件。 当我 运行 测试时,我希望外部 beforeEach 在内部 beforeEach
之前 运行这是一些示例代码
const expect = require('chai').expect
describe('Outer describe', async () => {
beforeEach(() => {
console.log('Outer beforeEach is running!!!!');
});
afterEach(() => {
console.log('Outer afterEach is running!!!!');
});
it('Outter test', async () => {
expect(true).to.be.true;
});
describe('Inner describe', () => {
before(() => {
console.log('Inner beforeEach is running!!!!');
});
after(() => {
console.log('Inner afterEach is running!!!!');
});
// only used to simplify the output
it.only('Inner test', async () => {
expect(true).to.be.true;
});
})
});
他是运行以上测试
的输出 Outer describe
Inner describe
Inner beforeEach is running!!!!
Outer beforeEach is running!!!!
✓ Inner test
Outer afterEach is running!!!!
Inner afterEach is running!!!!
我期待的是
Outer describe
Inner describe
Outer beforeEach is running!!!!
Inner beforeEach is running!!!!
✓ Inner test
Inner afterEach is running!!!!
Outer afterEach is running!!!!
这是预期的行为吗? 我的内部 beforeEach 取决于我的外部 beforeEach 运行ning 之前,这被认为是不好的做法吗?
我正在使用
节点 14.11.0
摩卡 8.1.3
输出与预期不符的原因是内部描述使用的是 before
而不是 beforeEach
before
在 describe 块中的所有测试之前仅 运行s 一次,在 describe 块中的每个测试之前 beforeEach
运行s 。这意味着外部描述的 beforeEach
需要在内部 before