Merge pull request #7252 from symonk/6900-class-per-instance-of-test-docs
document class instantiation for tests inside classes
This commit is contained in:
commit
54ae27f081
|
@ -153,6 +153,57 @@ Once you develop multiple tests, you may want to group them into a class. pytest
|
||||||
|
|
||||||
The first test passed and the second failed. You can easily see the intermediate values in the assertion to help you understand the reason for the failure.
|
The first test passed and the second failed. You can easily see the intermediate values in the assertion to help you understand the reason for the failure.
|
||||||
|
|
||||||
|
Grouping tests in classes can be beneficial for the following reasons:
|
||||||
|
|
||||||
|
* Test organization
|
||||||
|
* Sharing fixtures for tests only in that particular class
|
||||||
|
* Applying marks at the class level and having them implicitly apply to all tests
|
||||||
|
|
||||||
|
Something to be aware of when grouping tests inside classes is that each test has a unique instance of the class.
|
||||||
|
Having each test share the same class instance would be very detrimental to test isolation and would promote poor test practices.
|
||||||
|
This is outlined below:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
class TestClassDemoInstance:
|
||||||
|
def test_one(self):
|
||||||
|
assert 0
|
||||||
|
|
||||||
|
def test_two(self):
|
||||||
|
assert 0
|
||||||
|
|
||||||
|
|
||||||
|
.. code-block:: pytest
|
||||||
|
|
||||||
|
$ pytest -k TestClassDemoInstance -q
|
||||||
|
|
||||||
|
FF [100%]
|
||||||
|
================================== FAILURES ===================================
|
||||||
|
_______________________ TestClassDemoInstance.test_one ________________________
|
||||||
|
|
||||||
|
self = <test_example.TestClassDemoInstance object at 0x0000019BBB9EEDA0>
|
||||||
|
request = <FixtureRequest for <Function test_one>>
|
||||||
|
|
||||||
|
def test_one(self, request):
|
||||||
|
> assert 0
|
||||||
|
E assert 0
|
||||||
|
|
||||||
|
testing\test_example.py:4: AssertionError
|
||||||
|
_______________________ TestClassDemoInstance.test_two ________________________
|
||||||
|
|
||||||
|
self = <test_example.TestClassDemoInstance object at 0x0000019BBB9F3D68>
|
||||||
|
request = <FixtureRequest for <Function test_two>>
|
||||||
|
|
||||||
|
def test_two(self, request):
|
||||||
|
> assert 0
|
||||||
|
E assert 0
|
||||||
|
|
||||||
|
testing\test_example.py:7: AssertionError
|
||||||
|
=========================== short test summary info ===========================
|
||||||
|
FAILED testing/test_example.py::TestClassDemoInstance::test_one - assert 0
|
||||||
|
FAILED testing/test_example.py::TestClassDemoInstance::test_two - assert 0
|
||||||
|
2 failed in 0.11s
|
||||||
|
|
||||||
Request a unique temporary directory for functional tests
|
Request a unique temporary directory for functional tests
|
||||||
--------------------------------------------------------------
|
--------------------------------------------------------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue