.. _plugins: ======= Plugins ======= .. :history: 20150124T143000, new page. Coverage.py's behavior can be extended by writing plugins. A plugin is a separately installed Python class that you register in your .coveragerc. Plugins can be used to implement coverage measurement for non-Python files. Using plugins ------------- To use a coverage.py plugin, you install it, and configure it. For this example, let's say you want to use one called fred_plugin. #. Install the plugin as you would any other Python package:: pip install fred_plugin #. Configure coverage.py to use the plugin. You do this by editing (or creating) your .coveragerc file, as described in :ref:`config`. The ``plugins`` setting indicates your plugin:: [run] plugins = fred_plugin #. If the plugin needs its own configuration, you can add those settings in the .coveragerc file in a section named for the plugin:: [fred_plugin] option1 = True option2 = abc.foo Check the documentation for the plugin to see if it takes any options, and what they are. #. Run your tests as you usually would. NOTE: You will see a warning when coverage starts:: Coverage.py warning: Setting timid=True to support plugins. This means that coverage will run slower than it usually would. This limitation is part of the initial alpha release, it will be gone in the final version. Plugin API ---------- .. module:: coverage.plugin .. autoclass:: CoveragePlugin :members: .. autoclass:: FileTracer :members: .. autoclass:: FileReporter :members: