diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /testing/web-platform/tests/tools/pytest/doc/en/xunit_setup.rst | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'testing/web-platform/tests/tools/pytest/doc/en/xunit_setup.rst')
-rw-r--r-- | testing/web-platform/tests/tools/pytest/doc/en/xunit_setup.rst | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/testing/web-platform/tests/tools/pytest/doc/en/xunit_setup.rst b/testing/web-platform/tests/tools/pytest/doc/en/xunit_setup.rst new file mode 100644 index 000000000..7a80f1299 --- /dev/null +++ b/testing/web-platform/tests/tools/pytest/doc/en/xunit_setup.rst @@ -0,0 +1,90 @@ + +.. _`classic xunit`: +.. _xunitsetup: + +classic xunit-style setup +======================================== + +This section describes a classic and popular way how you can implement +fixtures (setup and teardown test state) on a per-module/class/function basis. +pytest started supporting these methods around 2005 and subsequently +nose and the standard library introduced them (under slightly different +names). While these setup/teardown methods are and will remain fully +supported you may also use pytest's more powerful :ref:`fixture mechanism +<fixture>` which leverages the concept of dependency injection, allowing +for a more modular and more scalable approach for managing test state, +especially for larger projects and for functional testing. You can +mix both fixture mechanisms in the same file but unittest-based +test methods cannot receive fixture arguments. + +.. note:: + + As of pytest-2.4, teardownX functions are not called if + setupX existed and failed/was skipped. This harmonizes + behaviour across all major python testing tools. + +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 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 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 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. + """ + +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 any state tied to the execution of the given function. + Invoked for every test function in the module. + """ + + def teardown_function(function): + """ teardown any state that was previously setup with a setup_function + call. + """ + +Note that it is possible for setup/teardown pairs to be invoked multiple times +per testing process. + +.. _`unittest.py module`: http://docs.python.org/library/unittest.html |