1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
.. _testsuite:
Running the Test Suite
======================
We use `pytest`_ and `tox`_ to run tests against all supported Python
versions. All test dependencies are resolved automatically.
You can decide to run the complete test suite or only part of it:
* To run all tests, use::
$ tox
If you have not all Python interpreters installed on your system
it will probably give you some errors (``InterpreterNotFound``).
To avoid such errors, use::
$ tox --skip-missing-interpreters
It is possible to use one or more specific Python versions. Use the ``-e``
option and one or more abbreviations (``py37`` for Python 3.7,
``py38`` for Python 3.8 etc.)::
$ tox -e py37
$ tox -e py37,py38
To get a complete list and a short description, run::
$ tox -av
* To run only a specific test, pytest requires the syntax
``TEST_FILE::TEST_FUNCTION``.
For example, the following line tests only the function
:func:`test_immutable_major` in the file :file:`test_bump.py` for all
Python versions::
$ tox -e py37 -- tests/test_bump.py::test_should_bump_major
By default, pytest prints only a dot for each test function. To
reveal the executed test function, use the following syntax::
$ tox -- -v
You can combine the specific test function with the ``-e`` option, for
example, to limit the tests for Python 3.7 and 3.8 only::
$ tox -e py37,py38 -- tests/test_bump.py::test_should_bump_major
Our code is checked against formatting, style, type, and docstring issues
(`black`_, `flake8`_, `mypy`_, and `docformatter`_).
It is recommended to run your tests in combination with :command:`checks`,
for example::
$ tox -e checks,py37,py38
.. _black: https://black.rtfd.io
.. _docformatter: https://pypi.org/project/docformatter/
.. _flake8: https://flake8.rtfd.io
.. _mypy: http://mypy-lang.org/
.. _pytest: http://pytest.org/
.. _tox: https://tox.rtfd.org/
|