-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Testing: pytest should be running multiple nodes in one single process #19796
Comments
Hello @eleanorjboyd, so I understand this ticket is added to the meta-issue, and we can keep it open until done? Again if you need a contribution I may be able to give it a try, otherwise I let you reach back to me when it's done. Thanks |
Yes, we will keep this ticket open until the issue is fixed. Thank you for your offer to help, we will let you know if anything comes up especially related to verifying this bug is resolved once the fix is pushed. |
Not sure if this is the exact same issue and if this will be fixed with the linked ticket. I noticed some strange behavior with unexpected parallel test execution. Minimal pytest example: import time
import pytest
@pytest.mark.parametrize("data", (1, 2))
def test_parallel(data):
time.sleep(15) Running this with the editor icon beside the line number it spawns two Python processes for the 2 tests (you can verify this with Process Explorer for example or just by checking the Python test output). This behavior with parallel execution is unexpected as this might break tests if shared resources are involved (in my case access to shared memory). Running the test in the testing panel it spawns only one Python test process as expected. |
Yes I get the same because explorer sees 2 tests at the same line (happens also when a test is a method of a class that gets inherited) |
Hello! I have reviewed this issue and have tested a similar scenario successfully on our testing rewrite. Therefore I am going to close this issue but please comment or open a new issue if you are still seeing a problem when you try this yourself! To use the rewrite yourself just add Thanks! |
Sorry if I missed an existing feature request with my searches I couldn't find one.
Hello,
When selecting multiple nodes to run tests, one would/could expect all of them to be run in one single process instantiation, for the following reasons:
I've specified pytest in this issue although I think it may be valid for other runners, because I'm only using pytest and I know it's possible to specify several tests in command-line invocation.
Thinking about the case where people may expect parallel runs and consider current state as a feature, I think they should rather consider options like
pytest-xdist
instead.I dug in the code, and, basically, it would mean that instead of having
runTests
do an await of delegated calls torunTest
for each node, it may directly invoke pytest with all nodes in arguments.Maybe even, if a parent and a child node are selected together only parent node could be passed to invocation, to avoid user mistakes leading to confusion.
In case this feature is accepted and needs external contribution, I may be able to code it
Thank you 🙂
The text was updated successfully, but these errors were encountered: