test_ok1/doc/xunit_setup.txt

88 lines
2.8 KiB
Plaintext
Raw Normal View History

.. _xunitsetup:
====================================
Extended xUnit style setup fixtures
====================================
.. _`funcargs`: funcargs.html
.. _`test parametrization`: funcargs.html#parametrizing-tests
.. _`unittest plugin`: plugin/unittest.html
.. _`xUnit`: http://en.wikipedia.org/wiki/XUnit
Python, Java and many other languages support xUnit_ style testing.
This typically involves the call of a ``setup`` ("fixture") method
before running a test function and ``teardown`` after it has finished.
``py.test`` supports a more fine-grained model of setup/teardown
handling by optionally calling per-module and per-class hooks.
Module level setup/teardown
=============================================
If you have multiple test functions and test classes in a single
module you can optionally implement the following fixture methods
which will usually be called once for all the functions::
def setup_module(module):
""" setup up any state specific to the execution
of the given module.
"""
def teardown_module(module):
""" teardown any state that was previously setup
with a setup_module method.
"""
Class level setup/teardown
=============================================
Similarly, the following methods are called at class level before
and after all test methods of the class are called::
@classmethod
def setup_class(cls):
""" setup up any state specific to the execution
of the given class (which usually contains tests).
"""
@classmethod
def teardown_class(cls):
""" teardown any state that was previously setup
with a call to setup_class.
"""
Method and function level setup/teardown
=============================================
Similarly, the following methods are called around each method invocation::
def setup_method(self, method):
""" setup up any state tied to the execution of the given
2010-11-02 07:53:53 +08:00
method in a class. setup_method is invoked for every
test method of a class.
"""
def teardown_method(self, method):
""" teardown any state that was previously setup
2010-11-02 07:53:53 +08:00
with a setup_method call.
"""
If you would rather define test functions directly at module level
you can also use the following functions to implement fixtures::
def setup_function(function):
""" setup up any state tied to the execution of the given
2010-11-02 07:53:53 +08:00
function. Invoked for every test function in the module.
"""
2011-01-14 06:50:10 +08:00
def teardown_function(function):
""" teardown any state that was previously setup
2010-11-02 07:53:53 +08:00
with a setup_function call.
"""
Note that it possible that setup/teardown pairs are invoked multiple
times per testing process.
.. _`unittest.py module`: http://docs.python.org/library/unittest.html