1515import pytest
1616from execnet .gateway_base import dumps , DumpError
1717
18+ from _pytest .config import _prepareconfig , Config
19+
1820
1921class WorkerInteractor (object ):
2022 def __init__ (self , config , channel ):
@@ -211,18 +213,18 @@ def getinfodict():
211213
212214
213215def remote_initconfig (option_dict , args ):
214- from _pytest .config import Config
215-
216216 option_dict ["plugins" ].append ("no:terminal" )
217- config = Config .fromdictargs (option_dict , args )
217+ return Config .fromdictargs (option_dict , args )
218+
219+
220+ def setup_config (config , basetemp ):
218221 config .option .looponfail = False
219222 config .option .usepdb = False
220223 config .option .dist = "no"
221224 config .option .distload = False
222225 config .option .numprocesses = None
223226 config .option .maxprocesses = None
224- config .args = args
225- return config
227+ config .option .basetemp = basetemp
226228
227229
228230if __name__ == "__channelexec__" :
@@ -239,7 +241,13 @@ def remote_initconfig(option_dict, args):
239241 os .environ ["PYTEST_XDIST_WORKER" ] = workerinput ["workerid" ]
240242 os .environ ["PYTEST_XDIST_WORKER_COUNT" ] = str (workerinput ["workercount" ])
241243
242- config = remote_initconfig (option_dict , args )
244+ if hasattr (Config , "InvocationParams" ):
245+ config = _prepareconfig (args , None )
246+ else :
247+ config = remote_initconfig (option_dict , args )
248+ config .args = args
249+
250+ setup_config (config , option_dict .get ("basetemp" ))
243251 config ._parser .prog = os .path .basename (workerinput ["mainargv" ][0 ])
244252 config .workerinput = workerinput
245253 config .workeroutput = {}
0 commit comments