pytest-dev / pytest-dev/pytest-xdist
xdist bails out too soon when using --exitfirst
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.9k
- Forks
- 287
- Avg merge
- 9h 30m
- Merged PRs (30d)
- 2
Description
While investigating pytest-dev/pytest#442 I ran into an issue where xdist behaves differently than regular pytest.
Basically, it seems that when using --exitfirst or --maxfail=X, in combination with -n X, pytest (DSession?) bails out before collecting the teardown report, so the pytest_runtest_logreport doesn't get run.
At first glance, it seems like the the plugin should flush any unread entries from the queue after telling the nodes to stop.
I'm willing to work on this if someone can verify that this makes sense and/or point me in the right direction :)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the DSession handling for --exitfirst and --maxfail when running with -n, then reproduce the difference from regular pytest. Trace how the queue is stopped and how pytest_runtest_logreport receives teardown reports. Done means unread queue entries are handled so teardown reports still trigger the hook before xdist exits.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- distributed-systems, testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100