Commit f0f5ebb3 by Tyler Hallada Committed by GitHub

Merge pull request #16139 from edx/thallada/doc-pytest-ddtdata

Document how to run @ddt.data methods with pytest
parents 473c682a 9d7c3f92
......@@ -257,11 +257,40 @@ For example, this command runs a single python unit test file.
pytest common/lib/xmodule/xmodule/tests/test_stringify.py
This command runs a single python unit test within a specified file.
To select tests to run based on their name, provide an expression to the `pytest
-k option
<https://docs.pytest.org/en/latest/example/markers.html#using-k-expr-to-select-tests-based-on-their-name>`__
which performs a substring match on test names.
::
pytest common/lib/xmodule/xmodule/tests/test_stringify.py -k test_stringify
Alternatively, you can select tests based on their `node ID
<https://docs.pytest.org/en/latest/example/markers.html#node-id>`__ directly,
which is useful when you need to run only one of mutliple tests with the same
name in different classes or files.
This command runs any python unit test method that matches the substring
`test_stringify` within a specified TestCase class within a specified file.
::
pytest common/lib/xmodule/xmodule/tests/test_stringify.py::TestCase -k test_stringify
Note: if the method has an `@ddt.data` decorator, ddt will create multiple
methods with the same prefix name and each individual data input as the suffix
(e.g. `test_stringify_1_foo`). To test all of the ddt.data variations of the
same test method, pass the prefix name to the pytest `-k` option.
If you need to run only one of the test variations, you can the get the
name of all test methods in a class, file, or project, including all ddt.data
variations, by running pytest with `--collectonly`.
::
pytest common/lib/xmodule/xmodule/tests/test_stringify.py::test_stringify
pytest common/lib/xmodule/xmodule/tests/test_stringify.py --collectonly
This is an example of how to run a single test and get stdout shown immediately, with proper env config.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment