-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
parametrized test nodes cannot be specified to run on the command line #649
Comments
Original comment by Alfredo Deza (BitBucket: alfredodeza, GitHub: alfredodeza): I've been able to get to a workaround which is to use a path and the If there is a way to limit how It looks like issue #387 describes this exact problem |
Original comment by Asaf Peleg (BitBucket: asafpelegcodes, GitHub: asafpelegcodes): I've also run into this problem and it would be great to come up with a fix for it. My current work around solution is to isolate my parameterized test in it's own class or file which is highly undesireable from a test suite or python perspective. |
2.9.1 ===== **Bug Fixes** * Improve error message when a plugin fails to load. Thanks `@nicoddemus`_ for the PR. * Fix (`#1178 <https://github.com/pytest-dev/pytest/issues/1178>`_): ``pytest.fail`` with non-ascii characters raises an internal pytest error. Thanks `@nicoddemus`_ for the PR. * Fix (`#469`_): junit parses report.nodeid incorrectly, when params IDs contain ``::``. Thanks `@tomviner`_ for the PR (`#1431`_). * Fix (`#578 <https://github.com/pytest-dev/pytest/issues/578>`_): SyntaxErrors containing non-ascii lines at the point of failure generated an internal py.test error. Thanks `@asottile`_ for the report and `@nicoddemus`_ for the PR. * Fix (`#1437`_): When passing in a bytestring regex pattern to parameterize attempt to decode it as utf-8 ignoring errors. * Fix (`#649`_): parametrized test nodes cannot be specified to run on the command line. .. _#1437: pytest-dev/pytest#1437 .. _#469: pytest-dev/pytest#469 .. _#1431: pytest-dev/pytest#1431 .. _#649: pytest-dev/pytest#649 .. _@asottile: https://github.com/asottile 2.9.0 ===== **New Features** * New ``pytest.mark.skip`` mark, which unconditionally skips marked tests. Thanks `@MichaelAquilina`_ for the complete PR (`#1040`_). * ``--doctest-glob`` may now be passed multiple times in the command-line. Thanks `@jab`_ and `@nicoddemus`_ for the PR. * New ``-rp`` and ``-rP`` reporting options give the summary and full output of passing tests, respectively. Thanks to `@codewarrior0`_ for the PR. * ``pytest.mark.xfail`` now has a ``strict`` option, which makes ``XPASS`` tests to fail the test suite (defaulting to ``False``). There's also a ``xfail_strict`` ini option that can be used to configure it project-wise. Thanks `@rabbbit`_ for the request and `@nicoddemus`_ for the PR (`#1355`_). * ``Parser.addini`` now supports options of type ``bool``. Thanks `@nicoddemus`_ for the PR. * New ``ALLOW_BYTES`` doctest option. This strips ``b`` prefixes from byte strings in doctest output (similar to ``ALLOW_UNICODE``). Thanks `@jaraco`_ for the request and `@nicoddemus`_ for the PR (`#1287`_). * Give a hint on ``KeyboardInterrupt`` to use the ``--fulltrace`` option to show the errors. Fixes `#1366`_. Thanks to `@hpk42`_ for the report and `@RonnyPfannschmidt`_ for the PR. * Catch ``IndexError`` exceptions when getting exception source location. Fixes a pytest internal error for dynamically generated code (fixtures and tests) where source lines are fake by intention. **Changes** * **Important**: `py.code <http://pylib.readthedocs.org/en/latest/code.html>`_ has been merged into the ``pytest`` repository as ``pytest._code``. This decision was made because ``py.code`` had very few uses outside ``pytest`` and the fact that it was in a different repository made it difficult to fix bugs on its code in a timely manner. The team hopes with this to be able to better refactor out and improve that code. This change shouldn't affect users, but it is useful to let users aware if they encounter any strange behavior. Keep in mind that the code for ``pytest._code`` is **private** and **experimental**, so you definitely should not import it explicitly! Please note that the original ``py.code`` is still available in `pylib <http://pylib.readthedocs.org>`_. * ``pytest_enter_pdb`` now optionally receives the pytest config object. Thanks `@nicoddemus`_ for the PR. * Removed code and documentation for Python 2.5 or lower versions, including removal of the obsolete ``_pytest.assertion.oldinterpret`` module. Thanks `@nicoddemus`_ for the PR (`#1226`_). * Comparisons now always show up in full when ``CI`` or ``BUILD_NUMBER`` is found in the environment, even when ``-vv`` isn't used. Thanks `@The-Compiler`_ for the PR. * ``--lf`` and ``--ff`` now support long names: ``--last-failed`` and ``--failed-first`` respectively. Thanks `@MichaelAquilina`_ for the PR. * Added expected exceptions to ``pytest.raises`` fail message. * Collection only displays progress ("collecting X items") when in a terminal. This avoids cluttering the output when using ``--color=yes`` to obtain colors in CI integrations systems (`#1397`_). **Bug Fixes** * The ``-s`` and ``-c`` options should now work under ``xdist``; ``Config.fromdictargs`` now represents its input much more faithfully. Thanks to `@bukzor`_ for the complete PR (`#680`_). * Fix (`#1290`_): support Python 3.5's ``@`` operator in assertion rewriting. Thanks `@Shinkenjoe`_ for report with test case and `@tomviner`_ for the PR. * Fix formatting utf-8 explanation messages (`#1379`_). Thanks `@biern`_ for the PR. * Fix `traceback style docs`_ to describe all of the available options (auto/long/short/line/native/no), with `auto` being the default since v2.6. Thanks `@hackebrot`_ for the PR. * Fix (`#1422`_): junit record_xml_property doesn't allow multiple records with same name. .. _`traceback style docs`: https://pytest.org/latest/usage.html#modifying-python-traceback-printing .. _#1422: pytest-dev/pytest#1422 .. _#1379: pytest-dev/pytest#1379 .. _#1366: pytest-dev/pytest#1366 .. _#1040: pytest-dev/pytest#1040 .. _#680: pytest-dev/pytest#680 .. _#1287: pytest-dev/pytest#1287 .. _#1226: pytest-dev/pytest#1226 .. _#1290: pytest-dev/pytest#1290 .. _#1355: pytest-dev/pytest#1355 .. _#1397: pytest-dev/pytest#1397 .. _@biern: https://github.com/biern .. _@MichaelAquilina: https://github.com/MichaelAquilina .. _@bukzor: https://github.com/bukzor .. _@hpk42: https://github.com/hpk42 .. _@nicoddemus: https://github.com/nicoddemus .. _@jab: https://github.com/jab .. _@codewarrior0: https://github.com/codewarrior0 .. _@jaraco: https://github.com/jaraco .. _@The-Compiler: https://github.com/The-Compiler .. _@Shinkenjoe: https://github.com/Shinkenjoe .. _@tomviner: https://github.com/tomviner .. _@RonnyPfannschmidt: https://github.com/RonnyPfannschmidt .. _@rabbbit: https://github.com/rabbbit .. _@hackebrot: https://github.com/hackebrot
Originally reported by: Alfredo Deza (BitBucket: alfredodeza, GitHub: alfredodeza)
If a file called
test_foo.py
has atest_add
function, the normal notation to call that specific function on the command line is: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:
The contents of the test is:
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: alfredodeza/pytest.vim#23
The text was updated successfully, but these errors were encountered: