pytest-dev / pytest-dev/pytest-xdist

Enable configuring numprocesses's default `tx` command

Open
#1,063 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
1.9k
Forks
287
Avg merge
9h 30m
Merged PRs (30d)
2

Description

Over the years I've used and introduced xdist whenever possibly to speed up pytest runs.

Usually just using the -n X notation was sufficient. But in our current application, we have to use the --tx notation to ensure we're using eventlet.

--tx '4*popen//execmodel=eventlet'

This is a lot to type if you 'just' want to speed up tests. And combining it with -n reverts it to just using popen.
Ideally I'd configuring it to default to using popen//execmodel=eventlet and then up the processes using -n X notation.

So my feature request would be:

Enable configuring what 'executing method' -n actually uses. With popen being the default.

So that in your pytest.ini you can do something like this:

[pytest]
addopts = --default-tx popen//execmodel=eventlet

And then can add more worker as desired with the -n notation.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing how pytest-xdist handles the -n and --tx options, including values supplied through pytest.ini addopts. Define the configuration for a default execution method, preserve popen as the default, and verify that -n X creates the requested number of workers using that method.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
testing-qa
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.