68 lines
2.1 KiB
Plaintext
68 lines
2.1 KiB
Plaintext
|
|
pytest plugins
|
|
==================
|
|
|
|
specifying plugins for directories or test modules
|
|
---------------------------------------------------------
|
|
|
|
py.test loads and configures plugins at tool startup and whenever
|
|
it encounters new confest or test modules which
|
|
contain a ``pytest_plugins`` definition. At tool
|
|
startup the ``PYTEST_PLUGINS`` environment variable
|
|
is considered as well.
|
|
|
|
Example
|
|
++++++++++
|
|
|
|
If you create a ``conftest.py`` file with the following content::
|
|
|
|
pytest_plugins = "pytest_plugin1", MyLocalPluginClass
|
|
|
|
then test execution within that directory can make use
|
|
of the according instantiated plugins:
|
|
|
|
* the module ``pytest_plugin1`` will be imported and
|
|
and its contained `Plugin1`` class instantiated.
|
|
A plugin module can put its dependencies into
|
|
a "pytest_plugins" attribute at module level as well.
|
|
|
|
* the ``MyLocalPluginClass`` will be instantiated
|
|
and added to the pluginmanager.
|
|
|
|
|
|
Plugin methods
|
|
----------------------------------
|
|
|
|
A Plugin class may implement the following attributes and methods:
|
|
|
|
* pytest_cmdlineoptions: a list of optparse-style py.test.config.Option objects
|
|
* pytest_configure(self, config): called after command line options have been parsed
|
|
* pytest_unconfigure(self, config): called before the test process quits
|
|
* pytest_event(self, event): called for each `pytest event`_
|
|
|
|
XXX reference APIcheck'ed full documentation
|
|
|
|
_`pytest event`:
|
|
|
|
Pytest Events
|
|
-------------------
|
|
|
|
XXX Various reporting events.
|
|
|
|
Example plugins
|
|
-----------------------
|
|
|
|
XXX here are a few existing plugins:
|
|
|
|
* adding reporting facilities, e.g.
|
|
pytest_terminal: default reporter for writing info to terminals
|
|
pytest_resultlog: log test results in machine-readable form to a file
|
|
pytest_eventlog: log all internal pytest events to a file
|
|
pytest_xfail: "expected to fail" test marker
|
|
pytest_tmpdir: provide temporary directories to test functions
|
|
pytest_plugintester: generic apichecks, support for functional plugin tests
|
|
pytest_pytester: support for testing py.test runs
|
|
|
|
* extending test execution, e.g.
|
|
pytest_apigen: tracing values of function/method calls when running tests
|