开玩笑:--runInBand 和--maxWorkers 之间的差异 1

Jest: Difference betwen --runInBand and --maxWorkers 1

何时适合使用每个 --runInBand--maxWorkers 1 选项?

如果我的意图是 运行 按顺序进行所有测试(一次一个,按顺序),哪一个是正确的选择?


额外的细节:

我正在使用 Jest 测试 NodeJs express 应用程序,集成测试通过 supertest 访问 HTTP 端点。这可能对答案没有任何影响,只是在相关的情况下提及。

这是 Jest CLI 参考:

https://facebook.github.io/jest/docs/cli.html

相关部分:

--maxWorkers=<num>

别名:-w。指定工作池将为 运行ning 测试生成的最大工作人员数。这默认为您机器上可用的核心数。在 CI 等资源有限的环境中调整此项可能很有用,但默认值应该足以满足大多数用例。

--runInBand

别名:-i。 运行 所有测试都在当前进程中连续进行,而不是创建一个 运行 测试的子进程工作池。这对调试很有用。

没有区别。这是从 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

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