Jest:与--runInBand和--maxWorkers 1之间的区别

bgu*_*uiz 13 javascript testing node.js jestjs

什么时候适合使用每个--runInBand--maxWorkers 1选项?

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


额外细节:

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

这是Jest CLI参考:

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

相关部分:

--maxWorkers=<num>

别名:-w.指定工作池将为运行测试生成的最大工作器数.默认为计算机上可用的核心数.在资源有限的环境(如CI)中进行调整可能很有用,但默认情况应该适用于大多数用例.

--runInBand

别名:-i.在当前进程中以串行方式运行所有测试,而不是创建运行测试的子进程的工作池.这对调试很有用.

ere*_*eit 19

没有区别.这是从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);
  }
}
Run Code Online (Sandbox Code Playgroud)

github上的原始源代码


Ers*_*ker 6

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