97 lines
3.2 KiB
Plaintext
97 lines
3.2 KiB
Plaintext
.. contents::
|
|
:local:
|
|
:depth: 2
|
|
|
|
available test options
|
|
-----------------------------
|
|
|
|
You can see command line options by running::
|
|
|
|
py.test -h
|
|
|
|
This will display all available command line options
|
|
including the ones added by plugins `loaded at tool startup`_.
|
|
|
|
.. _`loaded at tool startup`: extend.html#tool-startup
|
|
|
|
.. _conftestpy:
|
|
.. _collectignore:
|
|
|
|
conftest.py: project specific test configuration
|
|
--------------------------------------------------------
|
|
|
|
A unique feature of py.test are its powerful ``conftest.py`` files which
|
|
allow to `set option defaults`_, `implement hooks`_, `specify funcargs`_
|
|
or set particular variables to influence the testing process:
|
|
|
|
* ``pytest_plugins``: list of named plugins to load
|
|
|
|
* ``collect_ignore``: list of paths to ignore during test collection (relative to the containing
|
|
``conftest.py`` file)
|
|
|
|
* ``rsyncdirs``: list of to-be-rsynced directories for distributed
|
|
testing
|
|
|
|
You may put a conftest.py files in your project root directory or into
|
|
your package directory if you want to add project-specific test options.
|
|
|
|
``py.test`` loads all ``conftest.py`` files upwards from the command
|
|
line specified test files. It will lookup configuration values
|
|
right-to-left, i.e. the closer conftest files will be checked first.
|
|
You may have a ``conftest.py`` in your very home directory to have some
|
|
global configuration values.
|
|
|
|
There is a flag that may help you debugging your conftest.py
|
|
configuration::
|
|
|
|
py.test --traceconfig
|
|
|
|
.. _`implement hooks`: extend.html#conftest.py-plugin
|
|
.. _`specify funcargs`: funcargs.html#application-setup-tutorial-example
|
|
|
|
.. _`set option defaults`:
|
|
|
|
setting option defaults
|
|
-------------------------------
|
|
|
|
py.test will lookup values of options in this order:
|
|
|
|
* option value supplied at command line
|
|
* content of environment variable ``PYTEST_OPTION_NAME=...``
|
|
* ``name = ...`` setting in the nearest ``conftest.py`` file.
|
|
|
|
The name of an option usually is the one you find
|
|
in the longform of the option, i.e. the name
|
|
behind the ``--`` double-dash that you get with ``py.test -h``.
|
|
|
|
IOW, you can set default values for options per project, per
|
|
home-directoray, per shell session or per test-run.
|
|
|
|
.. _`basetemp`:
|
|
|
|
Temporary directories
|
|
-------------------------------------------
|
|
|
|
``py.test`` runs provide means to create per-test session
|
|
temporary (sub) directories through the config object.
|
|
You can create directories by calling a method
|
|
on the config object:
|
|
|
|
- ``config.mktemp(basename)``: create and returns a new tempdir
|
|
|
|
- ``config.ensuretemp(basename)``: create or return a new tempdir
|
|
|
|
tempdirs are created as sub directories of a per-session testdir
|
|
and will keep around the directories of the last three
|
|
test runs. You can also set the base temporary directory
|
|
with the `--basetemp`` option. When distributing
|
|
tests on the same machine, ``py.test`` takes care to
|
|
pass around the basetemp directory such that all temporary
|
|
files land below the same basetemp directory.
|
|
|
|
The config object is available when implementing `function arguments`_
|
|
or `extensions`_ and can otherwise be globally accessed as ``py.test.config``.
|
|
|
|
.. _`function arguments`: funcargs.html
|
|
.. _`extensions`: extend.html
|