I might be missing something very fundamental here, but tests are not
running in parallel on my side, as you may see tests are taking 4
seconds-ish:

$ py.test -vs test_dummy.py -n 2
======================================================================================
test session starts
=======================================================================================
platform linux2 -- Python 2.7.3 -- py-1.4.26 -- pytest-2.6.4 --
/usr/bin/python
plugins: xdist
[gw0] linux2 Python 2.7.3 cwd: /home/gmagno/Desktop/pytest
[gw1] linux2 Python 2.7.3 cwd: /home/gmagno/Desktop/pytest
[gw0] Python 2.7.3 (default, Feb 27 2014, 20:00:17)  -- [GCC 4.6.3]
[gw1] Python 2.7.3 (default, Feb 27 2014, 20:00:17)  -- [GCC 4.6.3]
gw0 [2] / gw1 [2]
scheduling tests via LoadScheduling

test_dummy.py::test_dummy1[a1]
[gw1] PASSED test_dummy.py::test_dummy1[a1]
test_dummy.py::test_dummy1[a2]
[gw1] PASSED test_dummy.py::test_dummy1[a2]

====================================================================================
2 passed in 4.47 seconds
====================================================================================

Cheers,
Gonçalo



On Sat, Dec 6, 2014 at 8:52 PM, Bruno Oliveira <nicodde...@gmail.com> wrote:

> Thanks for the example.
>
> I tried and it seems that xdist is running the tests in parallel: the more
> CPUs I use, the fastest the test suite runs. Do you see a different
> behavior?
>
> Cheers,
>
> On Sat, Dec 6, 2014 at 5:12 PM, Goncalo Morgado <goncalo.ma...@gmail.com>
> wrote:
>
>> To better depict what I am saying follows some code.
>>
>> $ sudo pip install pytest
>> $ sudo pip install pytest-xdist
>> $ py.test -vs test_dummy.py -n 2
>>
>>
>> #!/usr/bin/env python
>>
>> """
>> This is test_dummy.py
>> """
>> import pytest
>> import time
>>
>> @pytest.fixture(scope="function", params=["a1", "a2"])
>> def fix_dummy(request):
>>     print "fix_dummy: parameter: %s" % (request.param, )
>>     return request.param
>>
>> def test_dummy1(fix_dummy):
>>     print "parameter from fix_dummy: %s" %(fix_dummy, )
>>     time.sleep(2)
>>
>>
>> Cheers,
>> Gonçalo
>>
>>
>>
>> On Sat, Dec 6, 2014 at 6:45 PM, Goncalo Morgado <goncalo.ma...@gmail.com>
>> wrote:
>>
>>>
>>> pytest-xdist helped me to run different tests in multiple CPUs, for
>>> instance test_foo() and test_bar() would easily be run in two CPUs with
>>> pytest-xdist. The problem is when you have test_foobar(some_fixture), where
>>> some_fixture is parametrized with, let's say two parameters ["a", "b"],
>>> which will lead to two different test runs of test_foobar(). The challenge
>>> is to have these two test runs running in two CPUs.
>>>
>>> Cheers
>>> Gonçalo
>>>
>>>
>>> On Sat, Dec 6, 2014 at 6:30 PM, Bruno Oliveira <nicodde...@gmail.com>
>>> wrote:
>>>
>>>> Have you tried using pytest-xdist?
>>>>
>>>> Cheers,
>>>>
>>>> On Sat, Dec 6, 2014 at 4:26 PM, Goncalo Morgado <
>>>> goncalo.ma...@gmail.com> wrote:
>>>>
>>>>>
>>>>> Hi pytest community,
>>>>>
>>>>> I am not sure this is the right place to ask this, and I am sorry if
>>>>> it's not.
>>>>> I am trying to make use of multiple CPUs to run my tests, which I can
>>>>> for separately defined tests (different test_ functions for instance). 
>>>>> *The
>>>>> challenge is to run tests, generated from one single test_ function which
>>>>> fixture it depends on is parametrized with multiple parameters, on 
>>>>> multiple
>>>>> CPUs*.
>>>>> Currently I have this test that generates more than a thousand tests
>>>>> (because of the parametrized fixture it depends on) and ends up being very
>>>>> time consuming to run in one single CPU.
>>>>>
>>>>> Thanks for this great tool that is pytest!
>>>>>
>>>>> Cheers,
>>>>> Gonçalo
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> pytest-dev mailing list
>>>>> pytest-dev@python.org
>>>>> https://mail.python.org/mailman/listinfo/pytest-dev
>>>>>
>>>>>
>>>>
>>>
>>
>
_______________________________________________
pytest-dev mailing list
pytest-dev@python.org
https://mail.python.org/mailman/listinfo/pytest-dev

Reply via email to