==================================== xUnit style setup ==================================== .. _`funcargs`: funcargs.html .. _`xUnit`: http://en.wikipedia.org/wiki/XUnit Note: Since version 1.0 py.test offers funcargs_ for both simple and complex test setup needs. Especially for functional and integration, but also for unit testing, it is highly recommended that you use this new method. Python, Java and other languages have a tradition of using xUnit_ style testing. This typically involves the call of a ``setup`` method before a test function is run and ``teardown`` after it finishes. With ``py.test`` there are three scopes for which you can provide setup/teardown hooks to provide test fixtures: per-module, per-class and per-method/function. ``py.test`` will discover and call according methods automatically. All setup/teardown methods are optional. The following methods are called at module level if they exist: .. sourcecode:: python 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. """ The following hooks are available for test classes: .. sourcecode:: python def setup_class(cls): """ setup up any state specific to the execution of the given class (which usually contains tests). """ def teardown_class(cls): """ teardown any state that was previously setup with a call to setup_class. """ def setup_method(self, method): """ setup up any state tied to the execution of the given 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 with a setup_method call. """ The last two hooks, ``setup_method`` and ``teardown_method``, are equivalent to ``setUp`` and ``tearDown`` in the Python standard library's `unittest.py module`_. 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