当前位置: 首页 > 知识库问答 >
问题:

在JEST中,一个文件中的测试是并行运行的吗?

方风华
2023-03-14

Jest在Docs中表示:“Jest虚拟化JavaScript环境,并在工作进程之间并行运行测试。”

但是对于一个文件中的多个测试呢,它们是并行运行的,还是这个语句只适用于测试文件呢?我可以假设一个文件中的测试按外观顺序和串行运行吗?

共有2个答案

冷宏茂
2023-03-14

2020年的Jest

要在这方面添加更多信息,async测试在describe()语句中串联运行。这对于IO/数据库设置和清理功能很有用。看看下面的例子就知道了:

Some.spec.js

describe("my asynchronous tests", () => {
  beforeEach(async () => {
    console.log('> setup test')
    // SOMETHING ASYNCHRONOUS
  });
  afterEach(async () => {
    console.log('< teardown test')
    // SOMETHING ASYNCHRONOUS
  });

  test("test 1", async () => {
    console.log('-- starting test 1');
    // SOMETHING ASYNCHRONOUS
    console.log('-- finished test 1');
  }, 100000);

  test("test 2", async () => {
    console.log('-- starting test 2');
    // SOMETHING ASYNCHRONOUS
    console.log('-- finished test 2');
  }, 100000);
});

产出:

> setup test
-- starting test 1
-- finished test 1
< teardown test
> setup test
-- starting test 2
-- finished test 2
< teardown test

多个 description()语句将并行执行,即使它们位于同一文件中。

太叔马鲁
2023-03-14

是的,您可以放心地假设单个文件中的测试将按外观顺序运行。您可以通过在每个it块中放置一个console.log来证明这一点。

可能值得一提的是,依赖执行/外部状态的顺序通常是糟糕的实践……而且你永远不知道,Jest(或者当前的底层测试运行程序,Jasmine)可能会决定在较新的版本中以随机顺序运行它们。

 类似资料:
  • 我想用Jest做一个测试。 我使用

  • 我使用Jest框架,并有一个测试套件。我想关闭/跳过我的一个测试。 谷歌文档并没有给我答案。 你知道要查的答案或信息来源吗?

  • 为了减少测试的运行时间,我希望并行运行测试。我有几个不能并行运行的类。 假设我有两种类型的类:-并行类-包含类1,类2-不并行类-包含类3,类4我想并行运行类1和类2到类3和类4(但lass3不会并行运行到类4) 我试图这样做: 我并行运行这两个测试,但只有第一个测试具有类的并行性。 如果我可以选择添加parallel=“classes”进行测试,我尝试在TestNG文档中搜索。我看不到,但它正在

  • 问题内容: 我有一个包含单元测试的Go文件,其中一些使用了公共变量。我正在测试的代码中使用了另一个全局变量。所有这些都可能导致问题。 在Go中,当我们执行位于同一文件中的测试时,它们如何运行?并行还是下一个不会在前一个完成之前开始? 问题答案: 测试起来真的很容易: 使用运行它,输出显示它是顺序的: 因此,正常的测试是依次执行的,但是请不要忘记未定义顺序:如何依次运行golang测试? 还要注意,

  • 请让我知道是否可以通过TestNG运行并行套件?

  • 我正在尝试运行配置套件文件的并行测试。测试是针对使用Selenium的web应用程序。套件文件由多个测试组成。每个测试都包含多个测试类。每个测试中的第一个类用于初始化(@beforetest)WebDriver并关闭它(@aftertest)。WebDriver是静态的,以便将其传递给其他类(原因是我们需要从最后一个测试类结束的地方继续测试)。 当套件配置为按顺序运行测试时,测试将成功运行。但是当