pytest-xprocess icon indicating copy to clipboard operation
pytest-xprocess copied to clipboard

Support starting only once with xdist

Open FRidh opened this issue 1 year ago • 1 comments

Is your feature request related to a problem? Please describe. It is not uncommon wanting to start and stop a global service during a pytest run. Often test runs are also parallelized using pytest-xdist.

Describe the solution you'd like Possibility to start a process when the fixture is first needed, and destruct when the fixture is not in use anymore at all. Both with single worker and multiple (local) workers.

Describe alternatives you've considered Using https://pytest-xdist.readthedocs.io/en/stable/how-to.html#xdist.is_xdist_master separately or together for this purpose does not seem to work.

An alternative is another entry point that then starts pytest.

Additional context Add any other context or screenshots about the feature request here.

FRidh avatar Jan 17 '24 08:01 FRidh

Hey @FRidh, I think you can probably go for something like https://pytest-xdist.readthedocs.io/en/stable/how-to.html#making-session-scoped-fixtures-execute-only-once

just watch out for how you are cleaning up (xprocess.terminate call), you can use somthing along the lines of the link above with lock files to ensure all workers exist before terminating the process

northernSage avatar Mar 16 '24 17:03 northernSage