Merge pull request #892 from The-Compiler/multi-parametrize
Document and test stacking of parametrize.
This commit is contained in:
commit
9cf9900721
|
@ -114,6 +114,18 @@ Let's run this::
|
||||||
The one parameter set which caused a failure previously now
|
The one parameter set which caused a failure previously now
|
||||||
shows up as an "xfailed (expected to fail)" test.
|
shows up as an "xfailed (expected to fail)" test.
|
||||||
|
|
||||||
|
To get all combinations of multiple parametrized arguments you can stack
|
||||||
|
``parametrize`` decorators::
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
@pytest.mark.parametrize("x", [0, 1])
|
||||||
|
@pytest.mark.parametrize("y", [2, 3])
|
||||||
|
def test_foo(x, y):
|
||||||
|
pass
|
||||||
|
|
||||||
|
This will run the test with the arguments set to x=0/y=2, x=0/y=3, x=1/y=2 and
|
||||||
|
x=1/y=3.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
In versions prior to 2.4 one needed to specify the argument
|
In versions prior to 2.4 one needed to specify the argument
|
||||||
|
|
|
@ -472,6 +472,20 @@ class TestFunction:
|
||||||
config.pluginmanager.register(MyPlugin2())
|
config.pluginmanager.register(MyPlugin2())
|
||||||
config.hook.pytest_pyfunc_call(pyfuncitem=item)
|
config.hook.pytest_pyfunc_call(pyfuncitem=item)
|
||||||
|
|
||||||
|
def test_multiple_parametrize(self, testdir):
|
||||||
|
modcol = testdir.getmodulecol("""
|
||||||
|
import pytest
|
||||||
|
@pytest.mark.parametrize('x', [0, 1])
|
||||||
|
@pytest.mark.parametrize('y', [2, 3])
|
||||||
|
def test1(x, y):
|
||||||
|
pass
|
||||||
|
""")
|
||||||
|
colitems = modcol.collect()
|
||||||
|
assert colitems[0].name == 'test1[2-0]'
|
||||||
|
assert colitems[1].name == 'test1[2-1]'
|
||||||
|
assert colitems[2].name == 'test1[3-0]'
|
||||||
|
assert colitems[3].name == 'test1[3-1]'
|
||||||
|
|
||||||
def test_issue751_multiple_parametrize_with_ids(self, testdir):
|
def test_issue751_multiple_parametrize_with_ids(self, testdir):
|
||||||
modcol = testdir.getmodulecol("""
|
modcol = testdir.getmodulecol("""
|
||||||
import pytest
|
import pytest
|
||||||
|
|
Loading…
Reference in New Issue