test_ok1/doc/en/customize.txt

129 lines
3.9 KiB
Plaintext
Raw Normal View History

Basic test configuration
2009-08-19 01:04:57 +08:00
===================================
Command line options and configuration file settings
-----------------------------------------------------------------
2009-08-19 01:04:57 +08:00
You can get help on command line options and values in INI-style
configurations files by using the general help option::
2009-08-19 01:04:57 +08:00
py.test -h # prints options _and_ config file settings
2009-08-19 01:04:57 +08:00
This will display command line and configuration file settings
which were registered by installed plugins.
2009-08-19 01:04:57 +08:00
.. _inifiles:
How test configuration is read from configuration INI-files
-------------------------------------------------------------
``pytest`` searches for the first matching ini-style configuration file
in the directories of command line argument and the directories above.
It looks for file basenames in this order::
pytest.ini
tox.ini
setup.cfg
Searching stops when the first ``[pytest]`` section is found in any of
these files. There is no merging of configuration values from multiple
files. Example::
py.test path/to/testdir
will look in the following dirs for a config file::
path/to/testdir/pytest.ini
path/to/testdir/tox.ini
path/to/testdir/setup.cfg
path/to/pytest.ini
path/to/tox.ini
path/to/setup.cfg
... # up until root of filesystem
If argument is provided to a ``pytest`` run, the current working directory
is used to start the search.
.. _`how to change command line options defaults`:
.. _`adding default options`:
How to change command line options defaults
------------------------------------------------
It can be tedious to type the same series of command line options
every time you use ``pytest``. For example, if you always want to see
detailed info on skipped and xfailed tests, as well as have terser "dot"
progress output, you can write it into a configuration file::
# content of pytest.ini
# (or tox.ini or setup.cfg)
[pytest]
addopts = -rsxX -q
From now on, running ``pytest`` will add the specified options.
Builtin configuration file options
----------------------------------------------
2010-11-06 06:37:25 +08:00
.. confval:: minversion
Specifies a minimal pytest version required for running tests.
2009-08-19 01:04:57 +08:00
minversion = 2.1 # will fail if we run with pytest-2.0
2009-08-19 01:04:57 +08:00
2010-11-06 06:37:25 +08:00
.. confval:: addopts
2009-08-19 01:04:57 +08:00
Add the specified ``OPTS`` to the set of command line arguments as if they
had been specified by the user. Example: if you have this ini file content::
2009-08-19 01:04:57 +08:00
[pytest]
addopts = --maxfail=2 -rf # exit after 2 failures, report fail info
2009-08-19 01:04:57 +08:00
issuing ``py.test test_hello.py`` actually means::
py.test --maxfail=2 -rf test_hello.py
2009-08-19 01:04:57 +08:00
2010-11-06 06:37:25 +08:00
Default is to add no options.
.. confval:: norecursedirs
Set the directory basename patterns to avoid when recursing
for test discovery. The individual (fnmatch-style) patterns are
applied to the basename of a directory to decide if to recurse into it.
2010-11-06 06:37:25 +08:00
Pattern matching characters::
* matches everything
? matches any single character
[seq] matches any character in seq
[!seq] matches any char not in seq
Default patterns are ``.* _darcs CVS {args}``. Setting a ``norecursedir``
replaces the default. Here is an example of how to avoid
certain directories::
2010-11-06 06:37:25 +08:00
# content of setup.cfg
[pytest]
norecursedirs = .svn _build tmp*
This would tell ``pytest`` to not look into typical subversion or
2010-11-06 06:37:25 +08:00
sphinx-build directories or into any ``tmp`` prefixed directory.
.. confval:: python_files
One or more Glob-style file patterns determining which python files
are considered as test modules.
.. confval:: python_classes
One or more name prefixes determining which test classes
are considered as test modules.
.. confval:: python_functions
One or more name prefixes determining which test functions
and methods are considered as test modules. Note that this
has no effect on methods that live on a ``unittest.TestCase``
derived class.
See :ref:`change naming conventions` for examples.