jest是否保证它会按顺序在单个文件中运行测试?

dap*_*azz 6 javascript jestjs

我对观察中的开玩笑的理解是,它通过产生辅助进程提供并发执行测试,并将测试文件分发给工作程序,以便在完成当前测试文件时执行.

这告诉我,jest不会尝试同时在单个测试文件中执行测试.所以我希望以下测试总是通过(无需传递--runInBand):

describe('counting test', () => {
  let variable = 0;

  it('should start as 1', () => {
    variable += 1;
    expect(variable).toEqual(1);
  });
  it('should change to 2', () => {
    variable += 1;
    expect(variable).toEqual(2);
  });
});
Run Code Online (Sandbox Code Playgroud)

即第二次测试总是在第一次测试完成后运行.这样安全,是否有某个官方文档指明了这种行为?我找不到一个.

dap*_*azz 8

由于这没有正式的答案,我在进行了一些进一步的研究/实验(并由其中一位主持人签字)之后,在jest文档中添加了一个.

所以,是的,jest按顺序在文件中运行每个测试,等待每个测试完成,然后再移动到下一个文件.现在在Setup and Teardown中对此进行了描述.

进一步注意,描述块全部在任何测试块之前执行.

作为参考,实现它的代码主要在jest-circus/src/run.jsevent_handler.js中.