test_ok2/doc/customize.txt

127 lines
3.7 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 options and ini-config values by running::
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
how test configuration is read from setup/tox ini-files
--------------------------------------------------------
py.test searched for the first matching ini-style configuration file
in the directories of command line argument and the directories above.
It looks for filenames in this order::
pytest.ini
tox.ini
setup.cfg
Searching stops when the first ``[pytest]`` section is found.
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 py.test 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
------------------------------------------------
py.test provides a simple way to set some default
command line options. For example, if you want
to always see detailed info on skipped and xfailed
tests, as well as have terser "dot progress output",
you can add this to your root directory::
# content of pytest.ini
# (or tox.ini or setup.cfg)
[pytest]
addopts = -rsxX -q
From now on, running ``py.test`` will implicitly add
the specified options.
builtin configuration file options
----------------------------------------------
2010-11-06 06:37:25 +08:00
.. confval:: minversion
2010-11-06 06:37:25 +08:00
specifies a minimal pytest version needed 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 ``.* _* CVS {args}``. Setting a ``norecurse``
replaces the default. Here is a customizing example for avoiding
2010-11-06 06:37:25 +08:00
a different set of directories::
# content of setup.cfg
[pytest]
norecursedirs = .svn _build tmp*
This would tell py.test to not recurse into typical subversion or
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.
See :ref:`change naming conventions` for examples.