New issue 649: parametrized test nodes cannot be specified to run on the 
command line
https://bitbucket.org/hpk42/pytest/issue/649/parametrized-test-nodes-cannot-be

Alfredo Deza:

If a file called `test_foo.py` has a `test_add` function, the normal notation 
to call that specific function on the command line is:


```
py.test /path/to/test_foo::test_add
```

But if the function is parametrized the node ids change (seen with high 
verbosity and `--collect-only`) at runtime, so it makes it impossible to 
specify any parametrized test to run unless one just points to the whole file 
(as opposed to a single test node)

It would be nice if there was a way to specify such parametrized test nodes to 
run. Currently the behavior is that py.test will error with:


```
#!

(tmp)papaya-2 ~/tmp ᓆ py.test -vvv 
"/Users/alfredo/tmp/test_fail.py::test_adding"
============================== test session starts 
==============================
platform darwin -- Python 2.7.5 -- py-1.4.20 -- pytest-2.5.2 -- 
/Users/alfredo/.virtualenvs/tmp/bin/python
collecting 3 itemsERROR: not found: /Users/alfredo/tmp/test_fail.py::test_adding
(no name '/Users/alfredo/tmp/test_fail.py::test_adding' in any of [<Module 
'test_fail.py'>])

===============================  in 0.01 seconds 
================================
```

The contents of the test is:


```
#!

(tmp)papaya-2 ~/tmp ᓆ cat test_fail.py
import pytest


@pytest.mark.parametrize(('inp', 'expected'),
[
    ('2 + 2', 4),
    ('0 + 0', 0),
    ('2 + 2.0', 4.0),
])
def test_adding(inp, expected):
    assert eval(inp) == expected
```

This affects `pytest.vim` as it relies heavily on this particular feature so 
that a user can run specific tests from Vim.

pytest.vim related issue: https://github.com/alfredodeza/pytest.vim/issues/23


_______________________________________________
pytest-commit mailing list
pytest-commit@python.org
https://mail.python.org/mailman/listinfo/pytest-commit

Reply via email to