document new class instance per test
This commit is contained in:
		
							parent
							
								
									4a1557fa0e
								
							
						
					
					
						commit
						bad7a0207f
					
				| 
						 | 
					@ -153,6 +153,55 @@ 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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Some reasons why grouping tests in a class can be useful is:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 * Structural or organizational reasons
 | 
				
			||||||
 | 
					 * 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 does not have the same 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 0x000001F001A24EB8>, 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 0x000001F001A54908>, 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.17s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Request a unique temporary directory for functional tests
 | 
					Request a unique temporary directory for functional tests
 | 
				
			||||||
--------------------------------------------------------------
 | 
					--------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue