Add maxprocesses option to limit the maximum number of workers when using numprocesses=auto

Fix #337
This commit is contained in:
Pavel Pristupa
2018-10-17 16:37:13 +07:00
parent 86e2fb5a5a
commit 5ce8a6ec1a
4 changed files with 20 additions and 1 deletions

View File

@@ -47,6 +47,14 @@ def pytest_addoption(parser):
"you can use 'auto' here for auto detection CPUs number on "
"host system",
)
group._addoption(
"--maxprocesses",
dest="maxprocesses",
metavar="maxprocesses",
action="store",
type=int,
help="limit the maximum number of workers to process the tests when using --numprocesses=auto",
)
group.addoption(
"--max-worker-restart",
"--max-slave-restart",
@@ -172,7 +180,10 @@ def pytest_cmdline_main(config):
if config.option.numprocesses:
if config.option.dist == "no":
config.option.dist = "load"
config.option.tx = ["popen"] * config.option.numprocesses
numprocesses = config.option.numprocesses
if config.option.maxprocesses:
numprocesses = min(numprocesses, config.option.maxprocesses)
config.option.tx = ["popen"] * numprocesses
if config.option.distload:
config.option.dist = "load"
val = config.getvalue

View File

@@ -234,6 +234,7 @@ def remote_initconfig(option_dict, args):
config.option.dist = "no"
config.option.distload = False
config.option.numprocesses = None
config.option.maxprocesses = None
config.args = args
return config