我想運行一系列Python單元測試,它們都共享相同的setUp
方法。但是,測試的一個子集需要更大,更具體的一組變量。實現這一點的一種方法是定義一個輔助功能,並在「更具體」測試每次調用它:如何用Pytest夾具定義其他實例變量
import unittest
class TestFixtures(unittest.TestCase):
def setUp(self):
self.a = 1
def additional_setup(self):
self.b = 1
def test_check_value(self): # Ordinary test
self.assertEqual(self.a, 1)
def test_add_variables(self): # More specific test requiring 'self.b' to be defined
self.additional_setup()
self.assertEqual(self.a + self.b, 2)
if __name__ == "__main__":
unittest.main()
在我看來,這樣可以更優雅的使用Pytest fixtures來完成,但沒有一個實例我看到使用固定裝置和傳統的方法setUp
。我怎樣才能使用Pytest fixture來定義其他變量?
什麼我試過到目前爲止
其實我一直無法簡單地定義一個變量來使用夾具後測試的情況下使用。例如,
import pytest
import unittest
class TestFixtures(unittest.TestCase):
@pytest.fixture
def additional_setup_fixture():
b = 1
def test_use_fixtures(additional_setup_fixture):
print b
if __name__ == "__main__":
unittest.main()
產生NameError: global name 'b' is not defined.
。我怎樣才能定義變量用於測試(或者創建本地變量或實例變量)與Pytest夾具?