Jest:--runInBand和--maxWorkers 1之间的差异

rxztt3cl  于 2023-11-15  发布在  Jest
关注(0)|答案(3)|浏览(140)

什么时候适合使用--runInBand--maxWorkers 1选项?
如果我的意图是按顺序运行所有的测试(一次一个,按顺序),哪一个是正确的选择?
额外细节:
我使用Jest来测试一个NodeJs express应用程序,集成测试通过supertest访问HTTP端点。这可能对答案没有任何影响,只是在相关的情况下提到。
以下是Jest CLI参考:
https://facebook.github.io/jest/docs/cli.html
相关部分:
--maxWorkers=<num>
:-w。指定Worker-Pool将为运行测试生成的最大工作线程数。默认为您的计算机上可用的核心数。在资源有限的环境(如CI)中调整此值可能很有用,但默认值应足以满足大多数用例。
--runInBand
:-i.在当前进程中串行运行所有测试,而不是创建运行测试的子进程的工作者池。这对调试很有用。

mfpqipee

mfpqipee1#

没有区别。下面是从args对象读取它的方法:

export default function getMaxWorkers(argv: Argv): number {
  if (argv.runInBand) {
    return 1;
  } else if (argv.maxWorkers) {
    return parseInt(argv.maxWorkers, 10);
  } else {
    const cpus = os.cpus().length;
    return Math.max(argv.watch ? Math.floor(cpus / 2) : cpus - 1, 1);
  }
}

字符串
original source code on github

hmtdttj4

hmtdttj42#

--runInBand--maxWorkers=1具有相同的行为。

fcwjkofz

fcwjkofz3#

我遇到这个问题是因为VS Code的Jest runner坚持要追加--runInBand,而我的项目配置已经有了-w=1
我将我的项目配置替换为也使用--runInBand。现在它运行类似于以下命令:

jest ... --runInBand ... --runInBand

字符串
这是一个笑话没有抱怨!

相关问题