Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jest是否保证它将在单个文件中按顺序运行测试?_Javascript_Jestjs - Fatal编程技术网

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

Javascript jest是否保证它将在单个文件中按顺序运行测试?,javascript,jestjs,Javascript,Jestjs,我从观察中了解到,它通过生成助手进程来提供测试的并发执行,并将测试文件分发给工作人员,以便在他们完成当前测试文件时执行 这对我来说意味着jest不会试图同时在单个测试文件中执行测试。因此,我希望以下测试总是通过(无需通过--runInBand): 即,第二次测试始终在第一次测试完成后运行。这是否安全?是否有官方文件规定了这种行为?我找不到答案。因为这没有正式的答案,我在进一步研究/实验后在jest文档中添加了一个答案(并由他们的一位版主签署) 因此,是的,jest在一个文件中按顺序运行每个测试,

我从观察中了解到,它通过生成助手进程来提供测试的并发执行,并将测试文件分发给工作人员,以便在他们完成当前测试文件时执行

这对我来说意味着jest不会试图同时在单个测试文件中执行测试。因此,我希望以下测试总是通过(无需通过
--runInBand
):


即,第二次测试始终在第一次测试完成后运行。这是否安全?是否有官方文件规定了这种行为?我找不到答案。

因为这没有正式的答案,我在进一步研究/实验后在jest文档中添加了一个答案(并由他们的一位版主签署)

因此,是的,jest在一个文件中按顺序运行每个测试,等待每个测试完成后再进行下一个测试。现在在中描述了这一点

进一步注意,描述块都是在任何测试块之前执行的


作为参考,实现此功能的代码主要在和中。

测试本身就是回调。你不能保证一个比另一个先完成。我问了一个类似的问题。请注意,测试用例无论如何都应该是独立的。如果你的测试相互依赖,你应该重新设计它们。@Andrew这不完全正确——你可以确保一个测试在另一个测试之前完成,因为事实证明这就是笑话的工作原理,请看我的答案。您的问题与以下事实有关:
descripe
块在任何
test
块之前运行,而不是
test
块没有按顺序运行。非常好。我们将在今后铭记这一点。
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);
  });
});