
provide version info, conftest/environment config names.
========================================================


.. contents::
  :local:



command line options
--------------------


``--version``
    display py lib version and import information.
``-p name``
    early-load given plugin (multi-allowed).
``--traceconfig``
    trace considerations of conftest.py files.
``--nomagic``
    don't reinterpret asserts, no traceback cutting.
``--debug``
    generate and show internal debugging information.
``--help-config``
    show available conftest.py and ENV-variable names.

Start improving this plugin in 30 seconds
=========================================


1. Download `pytest_helpconfig.py`_ plugin source code
2. put it somewhere as ``pytest_helpconfig.py`` into your import path
3. a subsequent ``pytest`` run will use your local version

Checkout customize_, other plugins_ or `get in contact`_.

.. include:: links.txt
